So hier nun die endgültige und meiner Meinung nach einfachste Lösung für dein Problem:
Wir brauchen einen Vektor, der unsere Drehachse bildet, da wir ja nicht unbedingt die Einheitsvektoren x,y,z zum Drehen benutzen wollen.
Dieser Vektor muss senkrecht auf "Richtungsvektor" und dem "Zielvektor", auf den der "Richtungsvektor" gedreht werden soll, stehen. Wie schon gesagt, erhälst du diesen Drehvektor, wenn du das
Kreuzprodukt zwischen "Richtungsvektor" und "Zielvektor" bildest, und sicherheitshalber, noch normierst:
http://upload.wikimedia.org/math/c/e...d308010e54.png
Code:
Normierung eines Vektors (Länge des Vektors auf 1 setzen): x' = x / |x|
Dieser Vektor ist nun also deine Drehachse und kann in die Drehmatrix für die Drehung um eine beliebige Achse eingesetzt werden:
http://upload.wikimedia.org/math/e/d...4f396333ac.png
Den Winkel alpha erhälst du in diesem Fall direkt aus dem Skalarprodukt zwischen "Richtungsvektor" und "Zielvektor":
http://upload.wikimedia.org/math/b/d...11b61e2743.png
Anschließend können alle Ortsvektoren deines "Objektes" mit der fertigen Drehmatrix multipliziert werden und du müsstest dann das gedrehte Objekt erhalten