![]() |
---|
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 in der Skizze etwas rechts von der Achse) verwenden. In diesem Fall will ich 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 zur y-Achse zu verschieben, so dass der neue Abstand zwischen und der y-Achse der gleiche Abstand wie der alte zwischen und der eigenen Achse AB ist. Dann kann ich rotieren (gleich mit der einfacheren y-Rotations-Matrix) und dann kann ich 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 implementieren will. Danke schon im voraus :-) 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: |
![]() |
![]() |
Bei der Achse AB handelt es sich um eine Parallele zur y-Achse in der x-y-Ebene im Abstand in x-Richtung. Eine Rotation um die Y-Achse wird beschrieben durch die Matrix
Die Rotation eines Punktes müsste dann beschrieben werden durch Also für und |
![]() |
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 sehr einfach. Danke für die schnelle Antwort ;-) |