|
Guten Abend,
ich möchte ein lokales Koordinatensystem um seine Achsen mit um die x-Achse, mit um die y-Achse und mit um die z-Achse drehen.
Dies mache ich zurzeit mit 3 aufeinanderfolgenden Drehmatrizen (bzw. 3 aufeinader folgenden Quaternionmultiplikationen).
Ich vermute, dass diese 3 Drehungen auch mit einer einzelnen Drehung möglich sind. Kann man auch aus den gegebenen und einen Vektor bilden, um den . mit gedreht wird?
PS: Alle Drehungen sollen vereinfacht infinitesimal klein sein.
Vielen Dank!
Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
|
|
Hossa :-)
Wenn du eine Drehachse hast, die der Einfachheit halber normiert sei, also , so kannst du dir überlegen, wo ein Punkt mit Ortsvektor nach einer Drehung um den Winkel (im Gegenuhrzeigerinn) zu liegen kommt. Dazu zerlegst du den Ortsvektor in einen Anteil parallel und einen Anteil senkrecht zur Drehachse . Der parallele Anteil ist die Projektion von auf :
Der senkrechte Anteil ist der verbliebene Rest des Ortsvektors:
(1) Der parallele Anteil bleibt bei der Drehung ungeändert. Das liefert den Beitrag: .
(2) Der verbliebene senkrechte Anteil schrumpft mit dem Cosinus des Drehwinkels. Das liefert den Beitrag: .
(3) Das in (2) geschrumpfte "Vektorstück" muss irgendwo hin. Es wächst senkrecht zur Drehachse und senkrecht zu mit dem Faktor . Das liefert den Beitrag: .
Der gedrehte Vektor ist also:
Du kannst also die Drehung um eine Achse und einen Drehwinkel direkt vektoriell ausrechnen.
Wenn du lieber mit Matrizen arbeitest, solltest du unter dem Sichtwort "Euler-Winkel" fündig werden. Das ist aber eine "Strafarbeit" für besonders harte Fälle ;-)
|
|
quote]Der gedrehte Vektor r⃗′ ist also:
r⃗′=(n⃗⋅r⃗)⋅n⃗+(n⃗×r⃗)×n⃗⋅cosφ+(n⃗×r⃗)⋅sinφ
Du kannst also die Drehung um eine Achse n⃗ und einen Drehwinkel φ direkt vektoriell ausrechnen.
Wenn du lieber mit Matrizen arbeitest, solltest du unter dem Sichtwort "Euler-Winkel" fündig werden. Das ist aber eine "Strafarbeit" für besonders harte Fälle ;-)/quote]
Hallo DerDepp,
vielen Dank für die Antwort. Ich bin mir nicht sicher ob mit diese Antwort jetzt weiterhilft. Denn du hast ja jetzt einen Vektor gedreht. Ich möchte allerdings 3 Drehungen um 3 zueinander orthogonalen Achsen in einer einzelnen Drehung um nur eine einzelne Achse machen.
Hitergrund ist folgender: Eine Lage (angegeben durch eine Quaternion, bzw. 3 orthogonal zueinader liegenden Vektoren) wird durch Winkelgeschwindigkeiten gestört. Die Winkelgeschwinidkeit wird zyklisch gemessen und die neue Lage berechnet.
Um die neue Lage möglichst gut schätzen zu können benötige ich die Ableitungen der Quaternion nach den Winkelgeschwindigkeiten. Die Quaternion ist dabei eine Alternative zu 3 zueinander orthogonalen Vektoren. Eine einzelne Drehung einer Quaternion (realisiert durch eine Quaternionmultiplikation) ist leicht überschaubar. Wenn allerdings die gedrehte Quaternion noch 2 mal um 2 weitere Achsen gedreht wird, werden das kilometerlange Ausdrücke. Daher meine Hoffnung die 3-fach verkettete Drehung in einer einzelnen Drehung zu machen.
|
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.
|