Rotation kombiniert mit Scalierung



  • Hi,

    ich hab noch ne Frage:
    angenommen ich habe zwei Punkte P1 und P2(x,y,z) im Raum und ein Triangle irgendwo anders im Raum (Q1, Q2, Q3).
    Nun will ich das Q1 auf P1 liegt und Q2 und Q3 so um Q1 rotiert und scaliert werden, das Q3 auf P2 liegt, wobei die "Form" des Triangles natürlich beibehalten werden soll.

    Ich werde noch wahnsinnig, vorallem weil in Direct3D 8 die Rotationen(+Scalierung) so ätzend sind, ich Matrizen hasse und bisher Quaternations(sind wohl für sowas gedacht?) nicht angefasst habe.

    Wäre für jede Hilfe dankbar.



  • Einfach die Matrizen für die einzelnen Transformationen berechnen und diese multiplizieren.



  • Ähm, das ist ja schon das Problem -> wie berechne ich diese Matrizen den?
    ok, ich kann Q1 auf die Positionen P1 setzen und entsprechend P2 und Q2. Aber das das Object Q weitere Punkte Qn enhält müssen diese entsprechend rotiert/bewegt/scaliert werden, obwoh l sie keine Entsprechung in P haben. 😞



  • illuminator schrieb:

    Ähm, das ist ja schon das Problem -> wie berechne ich diese Matrizen den?
    ok, ich kann Q1 auf die Positionen P1 setzen und entsprechend P2 und Q2. Aber das das Object Q weitere Punkte Qn enhält müssen diese entsprechend rotiert/bewegt/scaliert werden, obwoh l sie keine Entsprechung in P haben. 😞

    Hm???

    Du mußt natürlich die Bewegung nach P1 und die Rotation/Skalierung bei Q2/Q3 auf ganz Q anwenden... Also alles zusammenadden und als Transformationsmatrix benutzen.



  • Was genau ist P?



  • P1 und P2 sind zwei Punkte (Hände) in einer BoneAnimation eines Menschen und Q ist das Modell einer Waffe -> diese soll natürlich richtig rotiert werden wenn die Figur ihre Arme bewegt, bzw. er durch "Fremdeinflüsse" bewegt wird.



  • Ja, aber was soll das ober erwähnte P sein, ein Vektorraum?



  • TGGC schrieb:

    Ja, aber was soll das ober erwähnte P sein, ein Vektorraum?

    Zur Info:

    Er spielt wohl auf...

    illuminator schrieb:

    obwoh l sie keine Entsprechung in P haben. 😞

    ...an! 😉



  • bei einer boneanimation ist normal doch die rotation des jeweiligen knochens bereits festgelegt. du müstest also einfach die rotation der hand auslesen, eine rotationsmatrix damit erstellen und dann das object rendern.
    hilft natürlich nur in diesem speziellen fall(bone-animation).


Anmelden zum Antworten