Bestimmten Punkt drehen + translieren

Hallo,

weiß jemand hier wie man Punkte um einen bestimmten Winkel dreht bzw. transliert? Die Aufgabe lautet irgendwie so:

Der Punkt P (1, 0, -1) soll um den Punkt A (2, 2, 0) um 30° um die y-Achse gedreht werden. Anschließend soll er um den Wert 4 in x-Richtung transliert werden.

Wie müsste man vorgehen? Ich habe mir das sogedach:
1.) T(-2,-2,0)
2.) Rotation um y(30°)
3.) T(2,2,0)

So, da wir das aber nicht in der gleichen Reihenfolge machen dürfen (weil öh… weil das nunmal so ist?) sondern alles umgekehrt, sieht dann zum Schluss meine Rechnung wie folgt aus:

T(4,0,0) T(2,2,0) Ry(30) T(-2,-2,0)
\left(
\begin {array} {c}
1\0\-1
\end {array}
\right)

Oder? Und jetzt einfach mal alles ganz aufschreiben:

M1\begin{bmatrix} 1&0&0&4 \ 0&1&0&0 \ 0&0&1&0 \ 0&0&0&1 \end{bmatrix}
M2\begin{bmatrix} 1&0&0&2 \ 0&1&0&2 \ 0&0&1&0 \ 0&0&0&1 \end{bmatrix}
M3\begin{bmatrix} cos\alpha&0&sin\alpha \ 0&1&0 \ -sin\alpha&0&cos\alpha \end{bmatrix}
M4\begin{bmatrix} 1&0&0&-2 \ 0&1&0&-2 \ 0&0&1&0 \ 0&0&0&1 \end{bmatrix}

\left(
\begin {array} {c}
1\0\-1\1
\end {array}
\right)

Hujj ist das lang. Aber so müsste das denke ich aussehen(?) Und dann Multipliziert man jetzt einfach von Rechts nach Links. Also M1 mit M2 und so weiter und ganz zum schluss mit dem Vektor. Sehe ich das richtig? Fehler drinne? Bin halt oft mit der Reihenfolge etwas überfordert. Und das ganze zeug mit dem „in dem Ursprung zurück“ (siehe oben erster Schritt).

Würde mich freuen wenn ihr was dazu sagen könntet

Gruß

Hallo,

deine Rechnung sollte so passen. Allerdings ist deine Rotationsmatrix ja 3x3 und der Rest 4x4. Füge da also noch eine Zeile und Spalte hinzu, damit das dann passt (Der Eintrag auf der Hauptdiagonalen ist 1, der Rest 0).
Zum Schluss spielt die Reihenfolge der Multiplikation keine Rolle. Matrizenmultiplokation ist assoziativ.

Nico

Hallo,

deine Rechnung sollte so passen. Allerdings ist deine
Rotationsmatrix ja 3x3 und der Rest 4x4. Füge da also noch
eine Zeile und Spalte hinzu, damit das dann passt (Der Eintrag
auf der Hauptdiagonalen ist 1, der Rest 0).

Hi! Ah stimmt, beim Rechnen hätte ich mir da die Zähne ausgebissen. Eine 4x4 Matrix lässt sich nämlich nicht so wirklich mit eine 3x3 Matrix multiplizieren ^^ Müsste dann so aussehen

M3\begin{bmatrix} cos\alpha&0&sin\alpha&0 \ 0&1&0&0 \ -sin\alpha&0&cos\alpha&0 \ 0&0&0&1 \end{bmatrix}

Zum Schluss spielt die Reihenfolge der Multiplikation keine
Rolle. Matrizenmultiplokation ist assoziativ.

Ja da bin ich verwirrt. Ich könnte schwören ich habe sehr oft sowas wie „es ist nicht egal ob man zuerst in den ursprungt zurück geht, skaliert und dann rotiert oder zuerst rotiert und dann …“

Aber vielleicht bezog sich das auf was anderes.

Danke und Gruß

Damit, dass die Reihenfolge egal ist, meinte ich, dass du zwei nebeneinander stehende Matrizen miteinander multipplizieren kannst und an deren Stellen mit dem Ergebnis weiter rechnest. Das ist ja mit Assoziativität gemeint: Klammern können beliebig gesetzt oder weggelassen werden.
Was du meinst ist das Vertauschen von Matrizen. Das geht nicht, da die Matrizenmultiplikation nicht kommutativ ist.

Nico

1 Like

Hallo,

Der Punkt P (1, 0, -1) soll um den Punkt A (2, 2, 0) um 30° um
die y-Achse gedreht werden. Anschließend soll er um den Wert 4
in x-Richtung transliert werden.

wenn niemand von Dir verlangt, es unbedingt als Matrixmultiplikation darzustellen, hätte ich noch diesen Vorschlag:

p’ = D( pa ) + a + (4 | 0 | 0)

mit p = (1 | 0 | –1) und a = (2 | 2 | 0) und D = die 3×3-Drehmatrix.

Gruß
Martin