Drehen Sie die Helix mithilfe der Rotationsgleichungen (Rz und Rx).

Also möchte ich die Spirale drehen

{ X = cos ( T ) , j = T , z = Sünde ( T ) ,
so dass es einen Vektor umschließt ( X , Y , Z ) T . Ich bekomme zuerst das Theta durch
θ = arctan ( Z Y )
Dann benutze ich die Rotationsgleichung um die X -Achse.
R X = [ 1 0 0 0 cos ( θ ) Sünde ( θ ) 0 Sünde ( θ ) cos ( θ ) ]
und multiplizieren
R 1 = R X ( cos ( T ) , T , Sünde ( T ) ) T
Die Drehung hier sieht also gut aus. Dann mache ich eine weitere Drehung um die z -Achse.
ϕ = 2 π arctan ( Z Y )
R z = [ 1 0 0 0 cos ( ϕ ) Sünde ( ϕ ) 0 Sünde ( ϕ ) cos ( ϕ ) ]
R z R 1
Die endgültige Drehung erfolgt in der richtigen Achse, jedoch nicht um den Vektor; Es ist leicht abweichend, wenn dies in einem 3D-Koordinatensystem grafisch dargestellt wird. Ich wollte wissen, ob ich die Gleichungen richtig verwende oder ob ich den Drehwinkel falsch nehme. Danke!

Ich verwende auch den Vektor ( X , Y , Z ) T = ( 12 , 13 , 15 ) T .

Beispiel: erste Drehung

θ = arctan ( 15 13 ) = 0,85671

R X = [ 1 0 0 0 0,65493 0,75569 0 0,75569 0,65493 ]

R X H e l ich X = [ C Ö S ( T ) 0,6549 T 0,7557 S ich N ( T ) 0,7557 T + 0,6549 S ich N ( T ) ]

zweite Umdrehung

ϕ = arctan ( 12 13 ) = 0,74542

R z = [ 0,73480 0,67828 0 0,67828 0,73480 0 0 0 1 ]

R z ( R X H e l ich X ) = [ 0,4442 T 0,5126 S ich N ( T ) + 0,7348 C Ö S ( T ) 0,4812 T 0,5553 S ich N ( T ) 0,6783 C Ö S ( T ) 0,7557 T + 0,6549 S ich N ( T ) ]

Diagramm: Wie Sie im Bild sehen können, wickelt sich die Helix nicht um den Vektor, nachdem beide Drehungen durchgeführt wurden. Geben Sie hier die Bildbeschreibung ein

Wie beschrieben bleibt Ihnen bei der Rotation ein nicht spezifizierter Freiheitsgrad: Nach dem Ausrichten der Achsen der Spiralen können Sie immer noch eine beliebige Rotation um den Vektor anwenden X , Y , Z . Abgesehen davon stellen die beiden Matrizen, die Sie in Ihrer Frage haben, Rotationen um die dar X -Achse.
Bitte verwenden Sie MathJax, um Ihre mathematischen Ausdrücke zu formatieren. Eine Kurzanleitung finden Sie hier . Verwenden Sie insbesondere \langleund \rangleanstelle von < und > zum Begrenzen von Vektoren.
@amd Haha ich habe das falsch geschrieben.
Nach der ersten Drehung R X die Achse der Spirale zeigt in die Richtung ( 0 , 13 , 15 ) . Also nach einer Drehung um die z -Achse zeigt es in die Richtung ( 13 Sünde ϕ , 13 cos ϕ , 15 ) für einige ϕ . Nicht gut. Ich habe es nicht getestet, aber ich denke, die erste Drehung sollte es in die Richtung zeigen lassen ( 0 , 12 2 + 13 2 , 15 ) stattdessen. Dann eine Drehung um die z -Achse um einen geeigneten Winkel ϕ würde funktionieren. Wie auch immer, wie amd betonte, gibt es eine gewisse Mehrdeutigkeit (oder einen gewissen Freiheitsgrad) in der Antwort.
Alternativ könnten Sie eine Drehung um die Achse verwenden ( 0 , 15 , 13 ) wie die zweite Drehung, aber die Formel dafür ist etwas komplizierter.
@JyrkiLahtonen, wenn ich den richtigen Winkel für die Drehung der z-Achse herausfinde. ist der Freiheitsgrad eine Konsequenz bei der Verwendung dieser Rotationsachsenmethode?
Der Freiheitsgrad ergibt sich aus unserer Fähigkeit, die Helix um ihre Achse zu drehen.

Antworten (1)

Die Idee, eine gegebene Helix um einen gegebenen Vektor zu wickeln, besteht darin, die Achse der gegebenen Helix auf den gegebenen Vektor abzubilden. Sobald dies geschehen ist, verbleibt ein Freiheitsgrad, um die Drehung der Helix um ihre Achse festzulegen.

Um die Helixachse abzubilden (lass es sein v 0 = ( 0 , 1 , 0 ) T ) auf den gegebenen Vektor (lass es sein v 1 = ( X , Y , Z ) T ) besteht eine Möglichkeit darin, die folgenden zwei Drehungen zu verwenden: die erste, R X , um die X -Achse, die abbildet v 0 zum rechten Polarwinkel und zum zweiten, R z , um die z -Achse, die den Azimutwinkel anpasst (siehe z . B. das sphärische Koordinatensystem von Wikipedia für eine Einführung in Polar- und Azimutwinkel).

Die Drehung R X beschreibt eine Drehung gegen den Uhrzeigersinn um X -Achse (gesehen von Punkt ( 1 , 0 , 0 ) T ):

R X = [ 1 0 0 0 cos ( ϕ ) Sünde ( ϕ ) 0 Sünde ( ϕ ) cos ( ϕ ) ] ,
wo der Winkel ϕ ist der Polarwinkel gegeben durch
ϕ = arcsin ( Z X 2 + Y 2 + Z 2 ) .
Die Drehung R z beschreibt eine Drehung gegen den Uhrzeigersinn um z -Achse (gesehen von Punkt ( 0 , 0 , 1 ) T ):
R z = [ cos ( θ ) Sünde ( θ ) 0 Sünde ( θ ) cos ( θ ) 0 0 0 1 ] ,
wo der Winkel θ ist der durch gegebene Azimutwinkel
θ = arcsin ( X X 2 + Y 2 ) .

Das sollten wir an dieser Stelle haben R z ( R X ( v 0 ) ) = v 1 , dh auf die Achse der ursprünglichen Helix hätte abgebildet werden sollen v 1 , und als Folge sollte sich die neue Helix um die gegebene Achse wickeln.

Danke! Wenn Sie dies verwenden, wird die Helix jedoch nicht um den Vektor gewickelt, es besteht immer noch ein gewisser Abstand zwischen ihnen. Ist dies nur ein Effekt bei Verwendung dieser Gleichung? oder gibt es eine andere Möglichkeit, dies zu tun.
Unter der Annahme, dass die beiden Drehungen korrekt ausgeführt wurden, sollte sich die Helix um den Vektor wickeln ( X , Y , Z ) T . Tatsächlich transformieren die beiden Drehungen den Raum starr R 3 durch Abbildung der alten Helixachse ( 0 , 1 , 0 ) T zur neuen Helixachse ( X , Y , Z ) T . Wie von @amd in den Kommentaren zu Ihrer Frage vorgeschlagen, gibt es immer noch einen Freiheitsgrad, der die Drehung der Helix um die Achse bestimmt ( X , Y , Z ) T . Wenn Sie ein Bild des erzielten Ergebnisses posten könnten, könnten wir versuchen, den "Effekt", den Sie sehen, genauer zu erklären ...
Hallo, ich habe ein Bild und das Ergebnis gepostet, das ich beim Einstecken von Theta und Phi erhielt.
Ich bin mir bei Ihrer Wahl nicht sicher θ oder ϕ . Siehe meinen Kommentar unter main. Der Hauptpunkt ist, dass die zweite Drehung den Winkel zwischen der Achse der Spirale und der nicht ändert z -Achse. Die erste Drehung muss diesen auf einen korrekten Wert einstellen.
@JyrkiLahtonen Ich denke, du hast Recht. Ich habe meine Antwort umgeschrieben.
Ich habe Theta und Phi ausprobiert, aber die Helix wickelt sich nicht um den Vektor. Ist der Freiheitsgrad nur ein Effekt, der auftritt, wenn man die Rotationsmethode anwendet?
@ Cass.12 Ich habe den Begriff vergessen Z 2 im Azimutwinkel. Jetzt sollte es funktionieren. Das Vorhandensein von Freiheitsgraden bedeutet, dass Sie es einmal abgebildet haben v 0 auf zu v 1 , kann sich die Spirale frei um ihre Achse drehen v 1 , während es weiterhin eine Lösung für Ihr Problem ist.
Danke! es funktionierte! Es war nur eine Frage der richtigen Winkel