Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Kuva kääntymään(VB6)

Sivun loppuun

Zapi [31.07.2004 18:39:32]

#

Onko mahdollista saada kuva kääntymään vaakasuunnassa

hunajavohveli [31.07.2004 18:45:19]

#

On se mahdollista ainakin kopioimalla pikseli kerrallaan. Tällä tavalla tulee toisaalta todella hidas, mutta mitään valmista funktiota tuohon ei muistaakseni VB:ssä ole.

Antti Laaksonen [31.07.2004 18:55:16]

#

Jos tarkoitat kuvan peilausta pystysuorassa olevan akselin kautta, se onnistuu helposti PaintPicture-komennolla. Vilkaise esimerkki.

hunajavohveli [31.07.2004 18:57:11]

#

Kappas, sellainen funktio löytyi sittenkin. :)

Zapi [31.07.2004 19:44:42]

#

Kiitos siitä on hyötyä, mutta voiko odjektia saada kääntymään? Siitäkin olisi hyötyä
Ja mikä olisi yksinkertaisin keino "puhdistaa" siis tyhjentää picturebox?

Antti Laaksonen [31.07.2004 20:02:29]

#

Jarska90 kirjoitti:

Kiitos siitä on hyötyä, mutta voiko odjektia saada kääntymään?

Tämä ei taida olla oikein mahdollista, ainakaan en muista nähneeni missään ohjelmassa tällaista...

Jarska90 kirjoitti:

Ja mikä olisi yksinkertaisin keino "puhdistaa" siis tyhjentää picturebox?

PictureBox tuntee Cls-toiminnon:

Picture1.Cls

Zapi [02.08.2004 18:46:28]

#

lainaus:

Tämä ei taida olla oikein mahdollista, ainakaan en muista nähneeni missään ohjelmassa tällaista...

Niin miekin luulin ettei sitä saa

Antti [02.08.2004 18:53:49]

#

Netistä löytyy ainakin maksullisia ActiveX komponentteja jotka osaa hoitaa homman. Ilmaisia en muista nähneeni, mutta saattaa löytyä jos jaksaa penkoa.

nomic [03.08.2004 02:24:33]

#

antti, tai voihan sen koittaa tehdä itekkin :P
eriasia on kuinka tasokas se on...

Metabolix [03.08.2004 02:52:37]

#

Kääntäminen onnistuu mm. Direct3D:llä, mutta sepä ei taidakaan olla helpoimpia juttuja. Kääntämisen ongelma on se, että pikselit ovat neliöitä. Täydelliseen tulokseen ei voi päästä.

tuomas [04.08.2004 16:42:07]

#

Osaisitko kertoa metabolix miten saisin sillä directx:llä pyöriteltyä kuvaa? 2D:nä. käytössä DirectX 7.0.
Jos olet ohjelmoinut tuollaista jollain muulla kuin vb & dx yhditelmällä niin esimerkki auttaa silti. Aina voi yrittää portata sen omalle kielelle.

Metabolix [04.08.2004 16:56:26]

#

Öh... Aloitin juuri DirectX:n käytön (C++:lla kylläkin), joten koodia ei ole valmiina. DirectX 7:sta en tiedä muutenkaan, ja koko homma pitäisi kai tehdä Direct3D:llä, jotta sen saisi piirrettyä. Direct3D:lläkin voi tehdä 2D-grafiikkaa.
Itse kaivelin systeemin tästä koodivinkistä. Tiivistettynä homma toimii suunnilleen näin (DX8:lla; kun vaihtaa 8 tilalle 7, saattaa toimia silläkin.):

  1. Luodaan LPDIRECT3D8 ("Otus1")
    Direct3DCreate8(D3D_SDK_VERSION);
  2. Luodaan LPDIRECT3DDEVICE8 ("Otus2")
    Otus1.CreateDevice(Paljon_Parametrejä);
  3. Luodaan LPDIRECT3DTEXTURE8 ("Otus3") ja ladataan kuva
    D3DXCreateTextureFromFile(Otus2, KuvatiedostonNimi, Otus3);
  4. Luodaan LPD3DXSPRITE ("Otus4")
    D3DXCreateSprite(Otus2, Otus4);
  5. Piirtäminen tapahtuu Otus4.Draw -funktiolla. Siitä saa parhaiten tietoa, kun kääntyy DirectX SDK:n puoleen.

nomic [05.08.2004 01:38:35]

#

ainaskin yksi tapa jota voisi käyttää isommissa projekteissa on sama mitä esim gta1:ssä käytettiin eli aluksi piirrettiin 3d-maastoon sprite joka oli joko ukko, akka tai auto...se on oikeasti piirretty vain kerran, sitten kun sitä käytetään pelissä luodaan 2-d "lattia"-sprite 3d-maailmaan jolloin käännetään itse spriteä johonkin suuntaan jos halutaan ei kuvaa... näin saadaan se pysymään kasassa ilman pikselihäröä.... tuo projekti kyllä taitaa olla turhan monimutkainen johonkin pienempään asiaan, ja varmasti olisi helmpompiakin tapoja, tämä kävi mielessä ja jos haluaa yhdistellä peliinsä 3d:tä sekä 3d:tä niin minusta tämä on varteenotettava vaihtoehto ylhäältä päin kuvattuun peliin :)

JoreSoft [12.08.2004 20:25:01]

#

Jarska90 kirjoitti:

Kiitos siitä on hyötyä, mutta voiko odjektia saada kääntymään? Siitäkin olisi hyötyä

Putka auttaa tähänkin ongelmaan...
https://www.ohjelmointiputka.net/koodivinkit/23794-vb6-kuvan-pyörittäminen-3


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta