Forum » Programiranje » rotacija
rotacija
Phil ::
Ali v VC++ obstaja kaka funkcija, ki izračuna nove koordinate pri rotacijah. Uporabil pa bi jih zato, da bi se lahko
v 3d enginu en predmet vrtel okoli svoje osi.
LP
v 3d enginu en predmet vrtel okoli svoje osi.
LP
Vesoljc ::
optimist...
v samem vc++ mislim da kej tacga ni, bos najdu take in drugacne zadevščne v directx SDK, sam če se spuščaš v programiranje 3d engina ti svetujem, da prelistaš kšno knjigo o 3d grafiki. te bo prec minil!! verjem...
če ti pojmi kot so vektorji,matrike,transformacije ipd. niso jasni definitivno rabš kšno knijgo!
pa srečno...
v samem vc++ mislim da kej tacga ni, bos najdu take in drugacne zadevščne v directx SDK, sam če se spuščaš v programiranje 3d engina ti svetujem, da prelistaš kšno knjigo o 3d grafiki. te bo prec minil!! verjem...
če ti pojmi kot so vektorji,matrike,transformacije ipd. niso jasni definitivno rabš kšno knijgo!
pa srečno...
Senitel ::
Ja v OpenGL-u (sej delaš OpenGL right?) imaš zato une funkcije:
glRotatef, glTranslatef, glScalef...
glRotatef, glTranslatef, glScalef...
DarkWIng ::
če delaš čisti softverski engine (pojma nima zakaj bi to počel), potem si oglej FlipCode al pa GameDev.. ce pa delas v OpenGL / DX potem pa tadva imaza že vgrajene funkcija (v OGL je glRotatef(kot,x,y,z),...) ..
in kot je reku Vesoljc : optimist.. točno tko.. če nepoznaš matematke za to potem se od delanja egina raje poslvi in se najprej malo posveti matematiki :))
in kot je reku Vesoljc : optimist.. točno tko.. če nepoznaš matematke za to potem se od delanja egina raje poslvi in se najprej malo posveti matematiki :))
You're a wonderful friend and a raving psycho.
Phil ::
Sej sem zdaj uporabil kar matrike za rotacijo. Če pa uporabim glrotatef mi to ne obrne samo nekega quada ampak vso sceno.
LP
LP
Thomas ::
Hehe ... to bo enih enginov ... ampak zgleda vsi podobni.
Man muss immer generalisieren - Carl Jacobi
Senitel ::
Thomas: Bo trebe enkrat eno tekmovanje organizirat ...
cman: Sej glRotatef so matrike... Kar moraš vedet je, da se to obnaša nekako tako kot logo. Če daš glRotatef(45,1,0,0), se obrneš za 45 stopinj po osi x in tam tudi ostaneš. Če daš še enkrat isto se boš obrnil še za 45 stopnij in boš torej bil obrnjen za 90 stopinj.
Zato narediš takole:
glLoadIdentity();
DrawScene(); // Narišemo ozadje
glRotatef(...);
glTranslatef(...);
glRotatef(...);
DrawObject(); // Narišemo premaknjen objekt
cman: Sej glRotatef so matrike... Kar moraš vedet je, da se to obnaša nekako tako kot logo. Če daš glRotatef(45,1,0,0), se obrneš za 45 stopinj po osi x in tam tudi ostaneš. Če daš še enkrat isto se boš obrnil še za 45 stopnij in boš torej bil obrnjen za 90 stopinj.
Zato narediš takole:
glLoadIdentity();
DrawScene(); // Narišemo ozadje
glRotatef(...);
glTranslatef(...);
glRotatef(...);
DrawObject(); // Narišemo premaknjen objekt
DarkWIng ::
najprej narišeš sceno..
>>DrawScene();
shraniš sceno(če boš risal več objetov)
>>glPushMatrix();
potem se prestaviš kamor mora objekt stati
>>glTranslatef(x,y,z);
potem ga zavrtiš okoli SVOJIH osi
>>glRotatef(kot,x,y,z);
potem narišeš objekt
>>DrawObject();
in če si shranil sceno jo še vrneš nazaj
>>glPopMatrix();
>>DrawScene();
shraniš sceno(če boš risal več objetov)
>>glPushMatrix();
potem se prestaviš kamor mora objekt stati
>>glTranslatef(x,y,z);
potem ga zavrtiš okoli SVOJIH osi
>>glRotatef(kot,x,y,z);
potem narišeš objekt
>>DrawObject();
in če si shranil sceno jo še vrneš nazaj
>>glPopMatrix();
You're a wonderful friend and a raving psycho.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | DirectX - težavicaOddelek: Programiranje | 1272 (1005) | Senitel |
» | [c#] enostavna Igrca -> poraba procesorja 95%Oddelek: Programiranje | 2167 (1531) | elKaktus |
» | C++ programirane v Open GL oz. Direct xOddelek: Programiranje | 2993 (2264) | Vesoljc |
» | OpenGL problemOddelek: Programiranje | 2493 (2059) | Gundolf |
» | OpenGL orr v ansi cOddelek: Programiranje | 1650 (1438) | igor12 |