matrici di rotazione
Von: Helron (helron@hotmail.it) [Profil]
Datum: 24.01.2007 16:45
Message-ID: <2007012415452619878@mynewsgate.net>
Newsgroup: it.comp.giochi.sviluppo
Datum: 24.01.2007 16:45
Message-ID: <2007012415452619878@mynewsgate.net>
Newsgroup: it.comp.giochi.sviluppo
Ciao, pensavo di aver capito come funzionassero... e invece ho scoperto di essere molto lacunoso -__- ci sto sbattendo la testa ma nn capisco una ceppa e nn so manco dove cacchio studiarle :°°° Il punto è questo: ho una classe oggetto che mi renderizza a video una forma geometrica... bene ora voglio spostare questo oggetto nello spazio 3d permettendone tutti i movimenti sui propri assi(pich, yaw, roll, strafe e move). Nella classe tengo salvati 4 vettori cioè vPos, vLook, vUp, vRight (tra l'altro.. nn ne basterebbero solo 3 visto che, essendo ortogonali, il quarto me lo posso calcolare?). Inizialmente i vettori vUp, vRight, vLook hanno la stessa direzione rispettivamente degli assi x,y e z del mondo. Ora, mettiamo che il mio oggetto è un banalissimo quadratino (manco un cubo...) e voglio effettuare lo yaw ruotandolo sul proprio asse indicato da vUp, faccio cosi: Se premo il tasto dx modifico vLook e vRight in funzione della rotazione su vUp, cioè: D3DXMATRIX m; D3DXMatrixRotationAxis(&m, &vUp, rotationSpeed); // rotazione positiva degli altri assi in funzione di vUp D3DXVec3TransformCoord(&vRight, &vRight, &m); D3DXVec3TransformCoord(&vLook, &vLook, &m); Se premo il tassto sx: D3DXMATRIX m; D3DXMatrixRotationAxis(&m, &vUp, -rotationSpeed); // rotazione negativa degli altri assi in funzione di vUp D3DXVec3TransformCoord(&vRight, &vRight, &m); D3DXVec3TransformCoord(&vLook, &vLook, &m); Le stesse cose le posso fare analogamente per il pich e il roll mentre per il movimento avanti faccio: vPos += vRight * movementSpeed; per quello indietro: vPos -= vRight * movementSpeed; bene... ma ora nn riesco a costruire la matrice finale(mWorldMatrix) da passare alla SetTransform(D3DTS_WORLD, &mWorldMatrix) Qualcuno mi illumina?? -- To understand recursion, you must first understand recursion...[ Auf dieses Posting antworten ]
