Rotationsmatrix zwischen 2 Vektoren |
| 03.01.2012, 12:10 | chrisisback | Auf diesen Beitrag antworten » |
| Rotationsmatrix zwischen 2 Vektoren Guten Tag, ich hänge seit einiger Zeit an einem kleinen Problem fest. Ich möchte eine Rotationsmatrix berechnen, um einen gemessenen Vektor auf einen fest definierten Vektor zu rotieren. Der feste Vektor ist (0,0,-1). Erhalte ich nun beispielsweise den Vektor x' = (0,-0.707,-0.707), dann suche ich eine Rotationsmatrix Rm für die gilt: (0,0,-1) = Rm * x' Vielen Dank für die Hilfe Meine Ideen: Ich habe gelesen, dass man die Rotationsachse aus dem Kreuzprodukt der beiden Vektoren und den Winkel aus dem Punktprodukt errechnen kann. Leider weiss ich nicht genau ob dieser Ansatz richtig ist und wie man anschließend eine Rotationsmatrix aus diesen Werten zusammensetzt. |
||
| 09.03.2012, 12:45 | Ray Hill | Auf diesen Beitrag antworten » |
Hallo, sicherlich hast du schon einen Weg gefunden, dein Problem zu lösen. Für alle anderen, die sich die gleiche Frage stellen, möchte ich trotzdem einen Lösungsweg geben. Versuche nicht, den Vektor in deinem Koordinatensystem (KS: anfängliches Koordinatensystem) zu drehen, sondern das Koordinatensystem bei gleichbleibendem Vektor. Das ist zwar im Endeffekt das selbe, aber so kannst du dir die Winkel im mathematisch richtigen Sinne vorstellen und das folgende Prinzip anwenden. Wenn du dein Koordinatensystem nun drehst, dann kannst du dir die Koordinatenachsen als Einheitsvektoren (Bsp: x = (1,0,0)) vorstellen, die nach der Transformation in eine andere Richtung zeigen. (KS': gedrehtes Koordinatensystem) Da die x-Achse deines Vektors nicht geändert wird, so findet lediglich eine Drehung um eben diese Achse statt. Anders ausgedrückt bleibt x = x' oder (1,0,0) = (1,0,0). Die y-Achse (0,1,0) und die z-Achse (0,0,1) werden jedoch gedreht. Deine Achse y' wird bezüglich des KS die Werte (0,0.707,0.707) annehmen (Zeichnung), die z'-Achse bezüglich des KS die Werte (0,-0.707,0.707). Diese drei Vektoren können nun direkt in die Rotationsmatrix eingetragen werden: | x1' y1' z1' | | x2' y2' z2' | = R | x3' y3' z3' | Dies funktioniert, da wir uns bei dieser Methode direkt auf die Achsvektoren beziehen. Aus den Werten in der Matrix kannst du dir dann deine Rotationswinkel berechnen. Grüße |
||
|
|
Verwandte Themen
| Die Beliebtesten » |
| Die Größten » |
|
| Die Neuesten » |
|
