Directx Objektdrehung mittels Worldmatrix



  • Hallo,

    ich möchte ein Objekt drehen. Dabei habe ich das Problem, wenn ich die Worldmatrix mit sinus und cosinus drehe das sich das Objekt nicht nur um die entsprechende Achse dreht sondern auch noch relativ um den (0,0,0) Punkt dreht.

    Mein ziel ist es, das sich das Objekt um sich selber dreht.

    Wie kann ich das realisieren?

    Als Worldmatrix habe ich 4 Vektoren, die ich dann an die Grafikarte sende.

    instances[0].position = D3DXVECTOR3(4.0f, 2.0f,     0.0f);
    instances[0].world1 =   D3DXVECTOR3(1.0f, 0.0f,     0.0f);
    instances[0].world2 =   D3DXVECTOR3(0.0f, cosf(x),  sinf(x));
    instances[0].world3 =   D3DXVECTOR3(0.0f, -sinf(x), cosf(x));
    


  • Drück diesen link bis du zu dem Abschnitt Kombination - Translate vor Rotate kommst, direkt danach kommt der Abschnitt Kombination - Rotate vor Translate. Beide lesen und deine Frage sollte sich klären.

    floorball



  • danke,

    ich habe es hinbekommen

    D3DXMATRIX worldMatrixRotation, worldScaling, baseMatrix, translateMatrix;
    	baseMatrix = worldMatrix;
    
    	worldMatrix = baseMatrix * * 
    				  D3DXMatrixScaling(&worldScaling,10.0f, 10.0f, 10.0f) * *
    		          D3DXMatrixRotationYawPitchRoll(&worldMatrixRotation, test1,0.0f,0.0f) * *
    		          D3DXMatrixTranslation(&translateMatrix, 20.0f, 0.0f, 20.0f);
    

Anmelden zum Antworten