Problem mit Rotationsmatrix
14. Mai 2012, 12:02
Morgen Leute,
in meinem Programm ist ein Blickpunkt im Raum immer fest(z.B mit Koordinaten (0,0,3)), drüben liegt ein 3D-Bauteil, aber der kann im Raum rotieren OHNE Translation (die Mitte des 3D-Bauteil liegt immer direkt auf dem Koordinatenursprung, also Position von diesem 3D-Objekt ist (0,0,0)).
Meine Aufgabe: Abstände zwischen diesem Blickpunkt (0,0,3) und allen Punkten vom 3D-Bauteil NACH DER ROTATION zu berechnen!
Wenn ich diesen 3D-Objekt zuerst um X-Achse um Winkel u, dann um Y-Achse um Winkel v, danach um Z-Achse um Winkel w drehe, um die neue Koordinaten von jedem Punkt des 3D-Objektes wieder zu berechnen, ist es ganz klar, folgende Rotationsmatrix zu verwenden (Multiplikation von Rotationsmatrix und Vektor des Punktes des rotierten 3D-Bauteils):
R=
|CwCv CwSvSu-SwCu CwSvCu+SwSu|
|SwCv SwSvSu+CwCu SwSvCu-CwSu|
|-Sv CvSu CvCu |
(C:Cos S:Sin)
Nun Problem ist:
Ich möchte diesen 3D-Bauteil FEST machen, aber lasse ich den Blickpunkt (0,0,3) um X,Y,Z-Achse um bestimmt. Winkel rotieren zu GLEICHER WIRKUNG, also natürlich zu gleicher relativer Position zu 3D-Bauteil wie vorher, damit bleiben die Abstände zwichen diesem rotierten Blickpunkt und allen Punkten vom festen 3D-Bauteil GLEICH wie vorher: Blickpunkt (0,0,3) fest, 3D-Bauteil rotiert.
Um die neue Koordinaten von rotiertem Blickpunkt nach Winkel u, v, w zu berechnen, brauche ich eine NEUE Rotationsmatrix, das ist ganz anders wie oben genannt.
Meine Frage: wie bekomme ich diese neue Rotationsmatrix?
Ein Bsp.:
Blickpunkt (0,0,3) ist fest,
1) 3D-Bauteil rotiert zuerst um X-Achse um +30 Grad (im Gegenuhrzeigersinn)
2) dann um Y-Achse +60 Grad
3) am Ende um Z-Achse +45 Grad.
Das entspricht folgende Rotation zu gleicher Wirkung (zu gleicher relativer Position):
3D-Bauteil ist fest,
1) Blickpunkt (0,0,3) rotiert zuerst um X-Acse um -30 Grad
2) dann um eine Achse um -60 Grad. (Der Richtungsvektor von dieser Achse ist (0,Wurzel 3,-1))
3) anschließend rotiert der Blickpunkt um sich selbst um -45 Grad
Das Problem sieht kompliziert aus, deshalb hätte ich gerne die Antwort oder Hinweise von euch
Vielen Dank
l.g Lee
Do the best job, leave the rest in the hands of God!
Geändert von Boyington (14. Mai 2012 um 12:06 Uhr)
|