Forum » Programiranje » rotiranje okoli x in y osi
rotiranje okoli x in y osi
NoUse4AName ::
Torej pos in lookAt sta vektorja. pos za koliko se je kamera premaknila, lookAt pa za koliko je treba rotirati kamero okoli x in y osi.
Kar ne razumem je zakaj se kamera rotira tudi okoli z osi, ko sta lookAt.X in lookAt.Y oba večja od 0.
Matrix matT, matR;
Quaternion qR;
matT = Matrix.Translation( pos );
matPos = Matrix.Multiply( matT, matPos );
qR = Quaternion.RotationYawPitchRoll( lookAt.X, lookAt.Y, 0 );
matR = Matrix.RotationQuaternion( qR );
matPos = Matrix.Multiply( matR, matPos );
matView = Matrix.Invert( matR );
device.Transform.View = matView;
Kar ne razumem je zakaj se kamera rotira tudi okoli z osi, ko sta lookAt.X in lookAt.Y oba večja od 0.
Matrix matT, matR;
Quaternion qR;
matT = Matrix.Translation( pos );
matPos = Matrix.Multiply( matT, matPos );
qR = Quaternion.RotationYawPitchRoll( lookAt.X, lookAt.Y, 0 );
matR = Matrix.RotationQuaternion( qR );
matPos = Matrix.Multiply( matR, matPos );
matView = Matrix.Invert( matR );
device.Transform.View = matView;
Gundolf ::
Vse je odvisno od tega kako si ti predstavljaš tvoje rotacije in kako si jih predstavlja računalnik
Rotiraš najprej okoli x. Ok. Nato rotiraš okoli y - ni več tako ok. Je to novi y ali stari y? Po rotaciji okoli x se namreč vektor y osi spremeni.
Rotiraš najprej okoli x. Ok. Nato rotiraš okoli y - ni več tako ok. Je to novi y ali stari y? Po rotaciji okoli x se namreč vektor y osi spremeni.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Libre office in datumiOddelek: Programska oprema | 1234 (947) | killa bee |
» | Vektor pogleda v 3D prostoruOddelek: Šola | 652 (572) | Senitel |
» | Ne odpirat maila z naslovom: dokumentOddelek: Pomoč in nasveti | 1197 (922) | kixs |
» | Ali Slo-Techovci vlagate v DELNICE???Oddelek: Loža | 1299 (1100) | krneki0001 |
» | [C#] [XNA] Premikanje objektaOddelek: Programiranje | 918 (875) | furion |