prev up next


Aufgabe 3.1 (40 Punkte)

Seien die Punkte $P_{1}=\left(\begin{array}{c}
2\\
1\\
0
\end{array}\right),\, P_{2}=\left(\beg...
... P_{3}=\left(\begin{array}{c}
2\\
-2\\
-1
\end{array}\right)\in\mathbb{R}^{3}$ gegeben. Konstruieren Sie eine Matrix $M$, die den Punkt $P_{3}$ um die von $P_{1}$ und $P_{2}$ definierte Gerade um den Winkel $\varphi=\frac{\pi}{4}$ dreht. Gehen Sie dabei folgendermaßen vor:

  1. Geben Sie die Gerade $a\left(t\right)=w_{0}+t\cdot w$, die durch $P_{1}$ und $P_{2}$ geht, in Parameterform an, sodass $a\left(0\right)=P_{1}$ und $a\left(1\right)=P_{2}$.
  2. Konstruieren Sie die Translationsmatrix $T$, sodass der Nullpunkt auf der Geraden $T\cdot a\left(t\right)$liegt.
  3. Konstruieren Sie die Rotationsmatrix $R_{y}\left(\alpha\right)$ um die $y$-Achse und mit dem Winkel $\alpha$, sodass die Gerade $R_{y}\left(\alpha\right)\cdot T\cdot a\left(t\right)$ in der $xy$-Ebene liegt.
  4. Konstruieren Sie die Rotationsmatrix $R_{z}\left(\beta\right)$ um die $z$-Achse und mit dem Winkel $\beta$, sodass die Gerade $R_{z}\left(\beta\right)\cdot R_{y}\left(\alpha\right)\cdot T\cdot a\left(t\right)$ auf der $x$-Achse liegt.
  5. Konstruieren Sie die Rotationsmatrix $R_{x}\left(\varphi\right)$, die einen Punkt $P$ um die $x$-Achse dreht.
  6. Konstruieren Sie die Transformationen $M_{L}=T^{-1}\cdot R_{y}\left(-\alpha\right)\cdot R_{z}\left(-\beta\right)$ und $M_{R}=R_{z}\left(\beta\right)\cdot R_{y}\left(\alpha\right)\cdot T$ exakt.
  7. Berechnen Sie den Punkt $P_{3}^{\prime}=M_{L}\cdot R_{x}\left(\varphi\right)\cdot M_{R}\cdot P_{3}$ mittels der Klasse Matrix4f. Erzeugen Sie dazu drei Matrizen, in die Sie die Werte von $M_{L}$, $M_{R}$ und $R_{x}\left(\varphi\right)$ explizit eintragen und berechnen Sie das Produkt mittels der Methode Matrix4f.mul(...) und speichern Sie die Ergebnismatrix in einer neuen Variable. Erzeugen Sie anschließend einen Vector4f mit den Werten des Punktes $P_{3}$ und transformieren Sie diesen mittels der Methode Matrix4f.transform(...). Lassen Sie sich das Ergebnis auf der Konsole ausgeben.
Hinweis: Alle Berechnungen in den Schritten 1. bis 6. haben exakt zu sein. Sie müssen ihrem Tutor jeden Schritt klarmachen (am Besten mithilfe einer oder mehrerer Skizzen). Es wird empfohlen, die Matrizen $R_{y}\left(-\alpha\right)\cdot R_{z}\left(-\beta\right)$ und $R_{z}\left(\beta\right)\cdot R_{y}\left(\alpha\right)$ zumächst allgemein aufzustellen und zusammenzurechnen, bevor Sie die Werte explizit einsetzen. Die Winkel $\alpha$ und $\beta$ müssen zu keinem Zeitpunkt exakt aufgestellt werden.

Musterlösung vom 16.05.2012:

[scale=0.25]rotation

  1. Die Geradengleichung ist $a\left(t\right)=\left(\begin{array}{c}
2\\
1\\
0
\end{array}\right)+t\cdot\left(\begin{array}{c}
3\\
12\\
4
\end{array}\right)$. Damit ist $a\left(0\right)=\left(\begin{array}{c}
2\\
1\\
0
\end{array}\right)=P_{1}$ und $a\left(1\right)=\left(\begin{array}{c}
5\\
13\\
4
\end{array}\right)=P_{2}$. Dann ist $w=\left(\begin{array}{c}
w_{x}\\
w_{y}\\
w_{z}
\end{array}\right)=\left(\begin{array}{c}
3\\
12\\
4
\end{array}\right)$ und die Projektion $v$ von $w$ auf die $xz$-Ebene ist $v=\left(\begin{array}{c}
w_{x}\\
0\\
w_{z}
\end{array}\right)=\left(\begin{array}{c}
3\\
0\\
4
\end{array}\right)$.
  2. Wir konstruieren eine Translationsmatrix $T$, sodass $T\cdot a\left(0\right)=\left(\begin{array}{c}
0\\
0\\
0
\end{array}\right)$. Wir translatieren also um $-\left(\begin{array}{c}
2\\
1\\
0
\end{array}\right)$. Damit ist $T=\left(\begin{array}{cccc}
1 & 0 & 0 & -2\\
0 & 1 & 0 & -1\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1
\end{array}\right)$.
  3. Wir rotieren um die $y$-Achse mit dem Winkel $\alpha$. Aus der Zeichnung erhalten wir die Zusammenhänge

    \begin{eqnarray*}
\sin\alpha & = & \frac{w_{z}}{\left\vert v\right\vert}\\
\cos\alpha & = & \frac{w_{x}}{\left\vert v\right\vert}.
\end{eqnarray*}



    Also lautet die Rotationsmatrix $R_{y}\left(\alpha\right)=\left(\begin{array}{cccc}
\cos\alpha & 0 & \sin\alpha ...
...w_{z} & 0 & w_{x} & 0\\
0 & 0 & 0 & \left\vert v\right\vert
\end{array}\right)$.
  4. Wir rotieren um die $z$-Achse mit dem Winkel $\beta=2\pi-\beta^{\prime}$ (da wir mit dem Uhrzeigersinn drehen müssen). Aus der Zeichnung erhalten wir die Zusammenhänge

    \begin{eqnarray*}
\sin\beta^{\prime} & = & \frac{w_{y}}{\left\vert w\right\vert}...
...} & = & \frac{\left\vert v\right\vert}{\left\vert w\right\vert}.
\end{eqnarray*}



    Also lautet die Rotationsmatrix

    \begin{eqnarray*}
R_{z}\left(\beta\right) & = & \left(\begin{array}{cccc}
\cos\l...
...t & 0\\
0 & 0 & 0 & \left\vert w\right\vert
\end{array}\right).
\end{eqnarray*}



  5. Wir rotieren um die $x$-Achse mit dem Winkel $\varphi=\frac{\pi}{4}$. Wir setzen $\sin\varphi=\cos\varphi=\frac{1}{\sqrt{2}}$ direkt in die Matrix ein und erhalten $R_{x}\left(\varphi\right)=\left(\begin{array}{cccc}
1 & 0 & 0 & 0\\
0 & \frac{...
...\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} & 0\\
0 & 0 & 0 & 1
\end{array}\right)$.
  6. Wir konstruieren

    \begin{eqnarray*}
M_{R} & = & R_{z}\left(-\beta\right)\cdot R_{y}\left(\alpha\ri...
...eft\vert v\right\vert\left\vert w\right\vert
\end{array}\right).
\end{eqnarray*}



    Einsetzen von $w_{x}=3,\, w_{y}=12,\, w_{z}=4,\,\left\vert w\right\vert=13\,\mathrm{und}\,\left\vert v\right\vert=5$ liefert

    \begin{displaymath}
M_{R}=\frac{1}{65}\left(\begin{array}{cccc}
15 & 60 & 20 & -...
...47\\
-52 & 0 & 39 & 104\\
0 & 0 & 0 & 65
\end{array}\right).
\end{displaymath}

    Für die Inverse Matrix erhalten wir

    \begin{eqnarray*}
M_{R} & = & T\cdot R_{y}\left(-\alpha\right)\cdot R_{z}\left(\...
...eft\vert v\right\vert\left\vert w\right\vert
\end{array}\right).
\end{eqnarray*}



    Einsetzen liefert

    \begin{displaymath}
M_{L}=\frac{1}{65}\left(\begin{array}{cccc}
15 & -36 & -52 &...
... 65\\
20 & -48 & 39 & 0\\
0 & 0 & 0 & 65
\end{array}\right).
\end{displaymath}

  7. /home/cg/2012/Uebung/Blatt3/Lsg/CG12Blatt3.zip 


prev up next