Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Rotation von Punkt um beliebige Achse im R3

Rotation von Punkt um beliebige Achse im R3

Universität / Fachhochschule

Matrizenrechnung

Vektorräume

Tags: Achse, Matrizenrechnung, Punkt, R3, Rotation, Vektorraum

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Sincer

Sincer aktiv_icon

01:49 Uhr, 05.01.2012

Antworten
Hey ;-)

Ich bin Informatik-Student und benötige ein wenig mathematische Nachhilfe zum Thema "Rotationen im Raum".
Ich will gerne folgendes berechnen:
-) Eine eigene Achse.
-) Die Koordinaten eines Punktes, den ich um diese Achse drehe.

Die hier hoch geladenen Bilder (Scans) sollen verdeutlichen, was ich erreichen will.
Auf der 1. Seite ist eine Skizze (links oben).
Ich habe eine Fläche gegeben, von der ich die Eckpunkte kenne. Ich kann folglich die vertikale Mitte der Fläche als Vektor darstellen ( Vektor AB in der Skizze). Diesen Vektor möchte ich gerne als Drehachse für den gegebenen Punkt P( in der Skizze etwas rechts von der Achse) verwenden.
In diesem Fall will ich P um 90° drehen. (Die Werte habe ich so gewählt, dass sie im Kopf leicht nachvollziehbar sind.)
Auf Wikipedia habe ich mir die Rotationsmatrix raus gesucht, und war dann etwas überrascht, als ich herausgefunden habe, dass meine Rotation eigentlich um die y-Achse, und nicht um meine eigene Achse stattgefunden hat. (Als ich's mir dann im Nachhinein angesehen habe, war mir schon klar warum... Der Einheitsvektor zeigt einfach in y-Richtung, und ein Vector ist nichts anderes als eine Richtung, der keine Position angibt.)

Meine Frage lautet nun: Wie kann ich den Punkt um meine eigene Achse drehen?

Bzw: Ich kenne grundsätzlich einen Lösungsweg, nämlich den Punkt P zur y-Achse zu verschieben, so dass der neue Abstand zwischen P und der y-Achse der gleiche Abstand wie der alte zwischen P und der eigenen Achse AB ist. Dann kann ich rotieren (gleich mit der einfacheren y-Rotations-Matrix) und dann kann ich P wieder zurück verschieben mit der umgekehrten Translations-Matrix. Das sollte mir ein richtiges Ergebnis liefern.
Aber geht das auch einfacher?

Ich wäre sehr dankbar für eine rasche und vor allem ausführliche Antwort, da ich das ganze in C++ implementieren will.

Danke schon im voraus :-)

Drehung um Achse 001 (bad quality)
Drehung um Achse 002 (bad quality)

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich bräuchte bitte einen kompletten Lösungsweg." (setzt voraus, dass der Fragesteller alle seine Lösungsversuche zur Frage hinzufügt und sich aktiv an der Problemlösung beteiligt.)
Hierzu passend bei OnlineMathe:

Online-Übungen (Übungsaufgaben) bei unterricht.de:
 
Online-Nachhilfe in Mathematik
Antwort
Gerd30.1

Gerd30.1 aktiv_icon

09:21 Uhr, 05.01.2012

Antworten
Bei der Achse AB handelt es sich um eine Parallele zur y-Achse in der x-y-Ebene im Abstand 3 in x-Richtung. Eine Rotation um die Y-Achse wird beschrieben durch die Matrix
Ry(α)=(cosα0sinα010-sinα0cosα)

Die Rotation eines Punktes P(xyz) müsste dann beschrieben werden durch Ry(α)(x-3yz)+(300)
Also für P(3,51,50) und α=900:
(001010-100)(0,51,50)+(300)=(01,5-0,5)+(300)=(31,5-0,5)


Frage beantwortet
Sincer

Sincer aktiv_icon

11:14 Uhr, 05.01.2012

Antworten
Vielen Dank, gerdware :-)

Deine Lösung ist genau das, was ich gesucht habe. (Punkt zur Achse verschieben, drehen, und wieder zurück verschieben.) Ich hätte das unnötiger Weise viel komplizierter gerechnet, aber deine Antwort macht mir die Implementierung in C++ sehr einfach.

Danke für die schnelle Antwort ;-)