+1 Daumen
341 Aufrufe


ich habe ein Problem mit der Vektorrotation. Ich möchte gerne einen Vektor drehen, hierzu ein kleines Beispiel:

Referenzvektor (1, 0, 0)

Vektor(der gedreht werden soll) (0, 1, 0)

Nun berechne ich den Winkel und erhalte einen korrekten Winkel von 90°, diesen Winkel setze ich nun in die Rotationsmatrix  ein und berechne durch das Skalarprodukt des Vektors und der Rotationsmatrix den neuen Vektor, jedoch bekomme ich als Ergebnis (-1, 0, 0), sprich mit einem falschen Vorzeichen. Wisst Ihr, was ich falsch mache?

Rotationsmatrix =[ [cos(alpha), -sin(alpha), 0.][sin(alpha), cos(alpha), 0.][0.,0.,1.]]


von

1 Antwort

0 Daumen

Referenzvektor (1, 0, 0) soll nicht gedreht werden? 

Du musst die x-Koordinate festhalten. Also: Rotationsmatrix:

Rotationsmatrix =[[1,0,0] [0,cos(alpha), -sin(alpha)][0,sin(alpha), cos(alpha)]]

Nun besser ?

von 162 k 🚀

Der Referenzvektor soll bestehen bleiben, ich will um die Z-Achse drehen, daher berechne ich in der X-Y_Ebene den Winkel zwischen meinem Vektor und der Hauptachse(Referenzvektor) 1,0,0 und habe aus diesem Grundauch meine Rotationsmatrix wie von mir beschrieben aufgestellt. Ist das also für meinen Fall so nicht korrekt mit der Rotationsmatrix um Z? Danke für die Unterstützung!

Doch, dann stimmt deine ursprüngliche Rotationsmatrix. Dein "Referenzvektor" ist der Vektor, von dem aus die Winkel gemessen werden. Halte nun den rechten Daumen in Richtung der z-Achse und drehe die Hand um 90° um den Daumen. 

Der Winkel 90° muss sich nun um 90° vergrössern. 90° + 90° = 180°. Da ist es natürlich, dass der resultierende Vektor [-1,0,0] ist, wenn du mit [0,1,0] startest.

Wenn du in die andere Richtung drehen möchtest, kannst du einfach überall phi durch -phi ersetzen. Das ist dann aber keine standardmässige Drehrichtung mehr.

Ok, ich verstehe. Ist es dann legitim allgemein, den berechneten Winkel um 180° zu vergrößern und damit in die Rotationsmatrix rein zu gehen, oder gibt es eine "elegantere" Lösung

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community