Rotation mit Quanternion



  • Hi!
    Vorerst, von komplexen Zahlen habe ich absolut keinen Schimmer.

    Habe beim googlen folgendes gefunden:

    glRotatef α, x, y, z

    q = (a, b, c, d)
    a = cos(α/2)
    b = xsin(α/2)
    c = y
    sin(α/2)
    d = z*sin(α/2)

    Wobei man ein Quanternion auch als Matrix darstellen kann:

    |  a  b -d -c |
    | -b  a -c  d |
    |  d  c  a  b |
    |  c -d -b  a |
    

    Als erstes wollte ich fragen, wenn ich einen 4 Komponenten Vektor mit w=1.0 mit dieser Matrix multipliziere, ob dieser gedreht wird.

    Weiter möchte ich mit Pitch, Yaw und Roll arbeiten:
    glRotatef α, 1.0, 0.0, 0.0
    glRotatef β, 0.0, 1.0, 0.0
    glRotatef γ, 0.0, 0.0, 1.0

    In OpenGL werden diese 3 resultierenden Matrizen miteinander multipliziert, und alle eingehenden Vektoren mit der berchneten Matrix multipliziert, so das er um den Koordinaten-Ursprung um Pitch=α, Yaw=β, Roll=γ gedreht wird. Kann jedoch zu diesen Gimpal-Look kommen, wo sie zwei Rotationen aufheben.

    Nun wollte ich fragen, ob man dies auch mit den Quanternion-Matrizen machen kann und dies zu selben Erfolg führt.

    mfg olli



  • Das sollte kein Problem sein, die Rotationsmatrizen durch Quaternionen darzustellen und diese dann miteinander zu kombinieren. Vielleicht bringt dir der Link hier was: http://www.j3d.org/matrix_faq/matrfaq_latest.html


Anmelden zum Antworten