Einzelnen Beitrag anzeigen

Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Rotation anhand eines Vektors

  Alt 30. Okt 2009, 13:14
Zitat von Medium:
Stimmt, man kann den Orthogonalen zwischen "altem" und neuen Up-Vektor als weiteren nehmen, allerdings ist dann eine Annahme über die Drehung vorgenommen worden, da sie an und für sich nicht vollständig bestimmt ist. Du willst ja nicht nur den Vektor drehen, sondern ein gesamtes Bezugssystem, und das braucht mehr als nur eine Richtung in 3D. Bildlich gesprochen würdest du z.B. einen Würfel kippen, könntest diesen ja aber noch frei um den neuen Up-Vektor drehen ohne die Drehung des Up-Vektors selbst zu verletzen. Die oben getroffene Annahme dürfte zu einem intuitiv "gutem" Verhalten führen, ist aber möglicherweise garnicht was du erreichen möchtest. Das hängt dann davon ab was du letztlich genau machen willst.

Stimmt, da hast du recht, du könntest dich noch um deinen Up-Vektor drehen, d.h. einen Freiheitsgrad hast du noch. Aber meine Drehung würde die Rotation um den Up-Vektor invariant lassen - soll heißen: Wenn unbedingt nötig, könnte man anschließend noch eine Drehmatrix mit dem Up-Vektor als Drehachse erstellen und so dann auch das objekt "um sich selbst" drehen.

//edit:

Zitat von Khabarakh:
@alleinherrscher: Wenn du um diesen Winkel drehst, veränderst du leider auch den Up-Vektor - das Objekt "kippt" (Roll) relativ zur Horizontalen, was sehr wahrscheinlich unerwünscht sein dürfte.
Wenn du mit der Horizontalen die x-y Ebene meinst kippt das Objekt natürlich gegenüber der Horizontalen, aber genau dass will man doch, wenn ich diesen Satz hier richtig interpretiere - er will doch, dass nach der Drehung der Up Vektor des Objektes in die selbe Richtung zeigt, wie ein zweiter, beliebig vorgegebener Vektor:

Zitat:
Dieses Objekt hat einen richtungsvektor der angibt wo oben ist, also 0,1,0. Nun habe ich einen beliebigen vektor und möchte das Objekt so rotieren, dass es in die Richtung dieses Vektors zeigt.
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat