Hallo !
ich habe folgendes Problem:
Ich habe ein Objekt (x-mesh) frei im Raum platziert/rotiert.
nun möchte ich es um eine achse rotieren (ist eigentlich die y-achse des objektes - welche aber um 40° um die z-achse gedreht worde ist.
ich dachte mir folgendes:
einfach einen vektor für die y - achse annehmen:
(0,1,0), diesen mit der objektmatrix multiplizieren und dann um die daraus resultierende achse rotieren - leider funktioniert das nicht ?!?
was mache ich falsch ?
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
|
D3DXVECTOR3 vLocalYAxis;
vLocalYAxis.x = 0.0f;
vLocalYAxis.y = 1.0f;
vLocalYAxis.z = 0.0f;
// aus der globalen y-Achse mittels der lokalen Matrix die lokale y-Achse berechnen
vLocalYAxis = vectorCrossMatrix(vLocalYAxis, this->m_mMeshMatrix);
// aus einer Rotation um die neue lokale Achse eine neue Rotationsmatrix erstellen
D3DXMatrixRotationAxis(&mRotY, &vLocalYAxis, vRotate_new.y);
// Matrizen multiplizieren
D3DXMatrixMultiply(&mTranslate,&mTranslate,&mRotY);
|
vRotate_new.y ist eine angabe in rad, um die gedreht werden soll.
vielleicht weiß jemand rat.
mfg
soxx[/code]