Not logged in
Talk
Contributions
Log in
Home
Blog
Blog in Deutsch
English Blog
Personal
About Me
Curriculum Vitæ
Study Materials
Science
Works & Projects
Software
Teaching & Acad. Supervision
Downloads
Contact
Contact Details
Facebook
Twitter
YouTube Channel
Imprint
“The universe is full of magical things
patiently waiting for our wits to grow sharper.”
Eden Phillpotts (1862–1960), “
A Shadow Passes”
, Cecil Palmer & Hayward, London, 1918.
Courtesy David Seal/NASA/JPL-Caltech
Editing
Help:Rotationen mit Quaternionen (Einführung in die Quaternionen-Mathematik)
From M.Eng. René Schwarz, Bremen/Merseburg
Jump to:
navigation
,
search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Im Jahr 1843 erarbeitete [http://de.wikipedia.org/wiki/William_Rowan_Hamilton Sir William Rowan Hamilton] ein vierdimensionales Zahlensystem samt zugehöriger Algebra, das er als ''Quaternionen'' (lat. ''quaternio'': „Vierheit“<ref>Georges, Karl Ernst: ''<u>Ausführliches lateinisch-deutsches Handwörterbuch</u>''. Hannover 1918 (Nachdruck Darmstadt 1998), Band 2, Spalte 2145. Online: http://www.zeno.org/nid/20002604043.</ref>) bezeichnete. Die Quaternionen verstehen sich als Erweiterung der reellen Zahlen um drei weitere Dimensionen. Quaternionen finden häufig Verwendung bei der Beschreibung von Drehungen im dreidimensionalen Raum, z.B. in der Computergrafik oder in Reglern und Simulationen in Luft- und Raumfahrt. Sie bieten eine sehr elegante Möglichkeit, Drehungen im dreidimensionalen Raum zu beschreiben und Nachteile von Matrixtransformationen zu umgehen. Zunächst mag es überraschend und vielleicht auch abschreckend sein, sich einer vierdimensionalen Algebra bei der Beschreibung von Transformationen in einem dreidimensionalen Raum zu bedienen, zumal Quaternionen vielfach nicht Inhalt der Lehre während der mathematischen Grundausbildung an Hochschulen und Universitäten sind. Ich möchte daher auf dieser Seite versuchen, einen kurzen, praktisch orientierten Einblick in den Körper der Quaternionen zu geben und auf die Vor- und Nachteile der Quaternionen und Rotationsmatrizen/Matrixtransformationen einzugehen. Diese Einführung legt dabei bewusst Hauptaugenmerk auf die Verwendung von Beispielen, um den Einstieg in die Thematik zu erleichtern. == Elementare Transformationen von Punkten im dreidimensionalen Raum == Ein Vektor $\vec{P} \in \mathbb{R}^3$ soll den [http://de.wikipedia.org/wiki/Ortsvektor Ortsvektor] eines Punktes im dreidimensionalen Raum ($\mathbb{R}^3$) in kartesischen Koordinaten beschreiben. Der Vektor $\vec{P}$ besteht aus den Komponenten $$\vec{P} = \begin{pmatrix} P_x \\ P_y \\ P_z \end{pmatrix}$$ mit $P_x, P_y, P_z \in \mathbb{R}$. [[File:Punkt im R3.svg|thumb|right|300px|Ein Punkt im dreidimensionalen Raum $\mathbb{R}^3$. Das Schaubild zeigt die Zerlegung seines Ortsvektors $\vec{P}$ in seine Komponenten $\tiny P_x$, $P_y$ und $P_z$.]] Dieser Punkt kann nun verändert (''transformiert'') werden; dabei entsteht ein neuer, transformierter Punkt $\vec{P}^\star \in \mathbb{R}^3$ mit $\vec{P}^\star = \left( P_x^\star, P_y^\star, P_z^\star \right)^\mathrm{T}$. Folgende Transformationen des Ursprungspunktes $\vec{P}$ sind beispielsweise denkbar: * Verschiebung (''Translation'') * Drehung um eine Rotationsachse (''Rotation'') * Spiegelung * Projektion auf eine Koordinatenebene (x-y-, y-z- oder x-z-Ebene). Spricht man nicht nur von einem einzelnen Punkt $\vec{P}$, sondern von einer Menge $\mathcal{P}$ von Punkten $\vec{P}_i$ und damit von einem Objekt, z.B. den Eckpunkten eines Quaders, so sind folgende zusätzliche Transformationen denkbar: * Scherung/Deformation * (dimensionsweise) Vergrößerung/Verkleinerung (''Skalierung'') * perspektivische Transformation. An dieser Stelle soll nun jedoch lediglich die Rotation näher betrachtet werden. == Drehung um eine Rotationsachse mit einer Rotationsmatrix == Gegeben sei ein Punkt $\vec{P}$, dessen Ortsvektor und die Abszisse des kartesischen Koordinatensystems einen beliebigen Winkel $\alpha \in [0, 2 \pi[$ einschließt. Dieser Punkt $\vec{P}$ soll durch Rotation um einen beliebigen Winkel $\varphi \in [0, 2\pi[$ bezüglich des Koordinatenursprungs $\vec{o} = (0,0,0)^\mathrm{T}$ <ref group="Anm." name="origo" /> in einen neuen Punkt $\vec{P}^\star$ transformiert werden. Die Rotation wird um die Applikate (z-Achse) durchgeführt. Die nebenstehende Abbildung veranschaulicht diesen Sachverhalt. [[File:Herleitung-Rotationsmatrix.svg|thumb|350px|right|Grafik zur Herleitung der Rotationsmatrix $\tiny \underline{R_z}$]] Man kann nun feststellen, dass unendliche viele, voneinander verschiedene Rotationen des Punktes $\vec{P}$ um die Applikate transformierte Punkte $\vec{P}_i^\star$ erzeugen, die sich auf einem Kreis mit Mittelpunkt $\vec{o}$ und einem Radius $r = \sqrt{P_x^2 + P_y^2}$ (dem Abstand des Punktes $\vec{P}$ zur Applikate) sammeln. Aus den trigonometrischen Funktionen ergeben sich die Koordinaten für den Ursprungspunkt $\vec{P}$ wie folgt (die dritte Komponente bleibt unberührt): $$\vec{P} = \begin{pmatrix} P_x \\ P_y \\ P_z \end{pmatrix} = \begin{pmatrix} r \cos \alpha \\ r \sin \alpha \\ P_z \end{pmatrix}$$ Ebenso ergeben sich die Koordinaten des transformierten Punktes $\vec{P}^\star$ unter Zuhilfenahme der [http://de.wikipedia.org/wiki/Formelsammlung_Trigonometrie#Additionstheoreme Additionstheoreme der trigonometrischen Funktionen] zu $$\begin{align}\vec{P}^\star = \begin{pmatrix} P_x^\star \\ P_y^\star \\ P_z^\star \end{pmatrix} &= \begin{pmatrix} r \cos(\alpha + \varphi) \\ r \sin(\alpha + \varphi) \\ P_z \end{pmatrix} \\ &\xlongequal[\text{theoreme}]{\text{Additions-}} \begin{pmatrix} r (\cos \alpha \cos \varphi - \sin \alpha \sin \varphi ) \\ r (\sin \alpha \cos \varphi + \cos \alpha \sin \varphi) \\ P_z \end{pmatrix}.\end{align}$$ Setzt man nun die beiden ersten Komponenten von $\vec{P}$ aus Gleichung (1), d.h. $r \cos \alpha = P_x$ und $r \sin \alpha = P_y$, in Gleichung (2) ein, so ergibt sich folgende Gleichung: $$\vec{P}^\star = \begin{pmatrix} P_x \cos \varphi - P_y \sin \varphi \\ P_y \cos \varphi + P_x \sin \varphi \\ P_z \end{pmatrix}.$$ Man sieht leicht ein, dass Gleichung (3) auch durch eine Matrixmultiplikation<ref group="Anm." name="schema_von_falk" /><ref name="schema_von_falk2" /><ref name="schema_von_falk1" /> einer Matrix $\underline{R_z} \in \mathbb{R}^{3 \times 3}$ und dem Vektor $\vec{P}$ entsteht: $$\vec{P}^\star = \underline{R_z} \cdot \vec{P} = {\color[rgb]{0.6,0,0} \begin{pmatrix} \cos \varphi & -\sin \varphi & 0 \\ \sin \varphi & \cos \varphi & 0 \\ 0 & 0 & 1 \end{pmatrix}} \cdot \begin{pmatrix} P_x \\ P_y \\ P_z \end{pmatrix} = \begin{pmatrix} P_x \cos \varphi - P_y \sin \varphi \\ P_x \sin \varphi + P_y \cos \varphi \\ P_z \end{pmatrix}.$$ Die Matrix $\underline{R_z}$ (in Gleichung (4) farblich hervorgehoben) ist die '''Rotationsmatrix für eine Drehung um die z-Achse'''. Die nachfolgende Tabelle gibt einen Überblick über die elementaren Rotationsmatrizen; die Herleitung für die übrigen Achsen kann analog erfolgen. Die letzte Zeile definiert eine Rotationsmatrix für eine Drehung um eine beliebige Achse $\vec{n}$, die durch den Koordinatenursprung verläuft und deren Länge $\| \vec{n} \|$ (euklidische Norm<ref group="Anm." name="euklidische_norm" />) auf 1 normiert ist. Für diese spezielle Rotationsmatrix bleibt die Herleitung aus Gründen des Umfangs an dieser Stelle aus; der geneigte Leser sei auf <ref name="3dsource" /> verwiesen. {| class="wikitable" id="uebersicht-rotationsmatrizen" style="margin: auto;" |+ Übersicht der elementaren Rotationsmatrizen |- ! Rotationsachse ! Rotationsmatrix |- ! x-Achse<br />$(1,0,0)^\mathrm{T}$ | style="text-align: center;" | $\underline{R_x}(\varphi) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos \varphi & -\sin \varphi \\ 0 & \sin \varphi & \cos \varphi \end{pmatrix}$ |- ! y-Achse<br />$(0,1,0)^\mathrm{T}$ | style="text-align: center;" | $\underline{R_y}(\varphi) = \begin{pmatrix} \cos \varphi & 0 & \sin \varphi \\ 0 & 1 & 0 \\ -\sin \varphi & 0 & \cos \varphi \end{pmatrix}$ |- ! z-Achse<br />$(0,0,1)^\mathrm{T}$ | style="text-align: center;" | $\underline{R_z}(\varphi) = \begin{pmatrix} \cos \varphi & -\sin \varphi & 0 \\ \sin \varphi & \cos \varphi & 0 \\ 0 & 0 & 1\end{pmatrix}$ |- ! beliebige Gerade durch<br />Koordinatenursprung<br /> $\vec{n} = (n_x,n_y,n_z)^\mathrm{T}$ ,<br /> $\| \vec{n} \| = 1$ | style="text-align: center; vertical-align: middle;" | $\underline{R_{\vec{n}}}(\varphi) = \begin{pmatrix} \cos \varphi +n_x^2 \left(1-\cos \varphi \right) & n_x n_y \left(1-\cos \varphi \right) - n_z \sin \varphi & n_x n_z \left(1-\cos \varphi \right) + n_y \sin \varphi \\ n_y n_x \left(1-\cos \varphi \right) + n_z \sin \varphi & \cos \varphi + n_y^2\left(1-\cos \varphi \right) & n_y n_z \left(1-\cos \varphi \right) - n_1 \sin \varphi \\ n_z n_x \left(1-\cos \varphi \right) - n_y \sin \varphi & n_z n_y \left(1-\cos \varphi \right) + n_x \sin \varphi & \cos \varphi + n_z^2\left(1-\cos \varphi\right) \end{pmatrix}$ |- |} === Beispiel === <div style="width: 90%; background-color: #F9F9F9; margin: auto; border: 1px solid #A9A9A9; border-radius: 7px; -moz-border-radius: 7px; -webkit-border-radius: 7px; padding: 10px; margin-top: 25px;"> <div style="text-align: center; font-weight: bold; border-bottom: 1px solid #A9A9A9; margin-bottom: 10px; padding-bottom: 4px;">Aufgabenstellung</div> Gegeben sei ein Quader mit der Punktmenge $\mathcal{P}_Q = \left\{\vec{P}_1, \vec{P}_2, \ldots, \vec{P}_8\right\}$, wobei :$\vec{P}_1 = (1, -1, -1)^\mathrm{T}, \vec{P}_2 = (1, -1, 1)^\mathrm{T}, \vec{P}_3 = (1, 1, 1)^\mathrm{T}, \vec{P}_4 = (1, 1, -1)^\mathrm{T},$ :$\vec{P}_5 = (-1, -1, -1)^\mathrm{T}, \vec{P}_6 = (-1, -1, 1)^\mathrm{T}, \vec{P}_7 = (-1, 1, 1)^\mathrm{T}, \vec{P}_8 = (-1, 1, -1)^\mathrm{T}$ die Eckpunkte des Quaders und die Verbindungsvektoren<ref group="Anm." name="verbindungsvektor" /> : $\vec{P}_{12}, \vec{P}_{23}, \vec{P}_{34}, \vec{P}_{41}, \vec{P}_{56}, \vec{P}_{67}, \vec{P}_{78}, \vec{P}_{85}, \vec{P}_{15}, \vec{P}_{26}, \vec{P}_{37}, \vec{P}_{48}$ die Kanten des Quaders sind. Der Quader soll nun um 30° um die $z$-Achse gedreht werden. </div> {{Help:Einführung in die Quaternionen-Mathematik/x3d-beispiel-würfel}} === Lösung === Zur Lösung kann die Rotationsmatrix $\underline{R_z}(\varphi)$ (siehe obige [[#uebersicht-rotationsmatrizen|Übersicht]]) mit $\varphi = 30\,^\circ \cdot \frac{\pi}{180\,^\circ} = \frac{1}{6} \pi$ verwendet werden. Achtung: Der Winkel $\varphi$ muss im Bogenmaß angeben werden<ref group="Anm." name="umrechnung-deg-rad" />. Durch Matrixmultiplikation von $\underline{R_z}\left(\varphi = \frac{1}{6} \pi \right)$ mit den einzelnen Punkten $\vec{P}_i \in \mathcal{P}_Q$ erhält man die transformierten Punkte $\vec{P}_i^\star \in \mathcal{P}_Q^\star$: $\vec{P}_i^\star = \underline{R_z}\left(\varphi = \frac{1}{6} \pi \right) \cdot \vec{P}_i$ '''Rechnung als Beispiel für $\vec{P}_1$:''' : $\begin{array}{c|cl} \vec{P}_1^\star = \underline{R_z} \cdot \vec{P}_1 & \color[rgb]{0.3,0.3,0.3} \begin{pmatrix} 1 \\ -1 \\ -1 \end{pmatrix} & \\\hline \color[rgb]{0.3,0.3,0.3} \begin{pmatrix} \cos\left(\frac{1}{6} \pi \right) & \sin\left(\frac{1}{6} \pi \right) & 0 \\ \sin\left(\frac{1}{6} \pi \right) & \cos\left(\frac{1}{6} \pi \right) & 0 \\ 0 & 0 & 1 \end{pmatrix} & \color[rgb]{0.3,0.3,0.3} \begin{pmatrix} 1 \cos\left(\frac{1}{6} \pi \right) + 1 \sin\left(\frac{1}{6} \pi \right) \\ 1 \sin\left(\frac{1}{6} \pi \right) - 1 \cos\left(\frac{1}{6} \pi \right) \\ -1 \end{pmatrix} & = \color[rgb]{0.6,0,0} \begin{pmatrix} 1.3660 \\ -0.3660 \\ -1 \end{pmatrix} \end{array}$ '''für alle übrigen Punkte:''' : $\vec{P}_2^\star = \begin{pmatrix} 1.3660 \\ -0.3660 \\ 1 \end{pmatrix}, \vec{P}_3^\star = \begin{pmatrix} 0.3660 \\ -0.3660 \\ 1 \end{pmatrix}, \vec{P}_4^\star = \begin{pmatrix} 1.3660 \\ -0.3660 \\ -1 \end{pmatrix}, \vec{P}_5^\star = \begin{pmatrix} -0.3660 \\ -1.3660 \\ -1 \end{pmatrix},$ : $\vec{P}_6^\star = \begin{pmatrix} -0.3660 \\ -1.3660 \\ 1 \end{pmatrix}, \vec{P}_7^\star = \begin{pmatrix} -1.3660 \\ 0.3660 \\ 1 \end{pmatrix}, \vec{P}_8^\star = \begin{pmatrix} -1.3660 \\ 0.3660 \\ -1 \end{pmatrix}$ {{Help:Einführung in die Quaternionen-Mathematik/x3d-beispiel-würfel-gedreht}} == Anmerkungen == <references group="Anm."> <ref name="origo">Nebenbei bemerkt: $\small \vec{o}$ steht für ''Origo'' (lat. „Herkunft, Ursprung“), also für die Koordinaten des Koordinatenursprungs.</ref> <ref name="schema_von_falk">Die Matrixmultiplikation kann mit dem Schema von Falk sehr einfach nachvollzogen werden. Man könnte beispielsweise folgendes Schema konstruieren: :$\begin{array}{c|c} \underline{R_z} \cdot \vec{P} & \color[rgb]{0.3,0.3,0.3} \begin{pmatrix} P_x \\ P_y \\ P_z \end{pmatrix} \\ \hline \color[rgb]{0.3,0.3,0.3} \begin{pmatrix} \cos \varphi & -\sin \varphi & 0 \\ \sin \varphi & \cos \varphi & 0 \\ 0 & 0 & 1 \end{pmatrix} & \color[rgb]{0.6,0,0} \begin{pmatrix} P_x \cos \varphi - P_y \sin \varphi \\ P_x \sin \varphi + P_y \cos \varphi \\ P_z \end{pmatrix} \end{array}$</ref> <ref name="euklidische_norm">Die euklidische Norm wird auch als ''2-Norm'' bezeichnet.</ref> <ref name="verbindungsvektor">Der Verbindungsvektor $\small \vec{P}_{AB}$ zwischen zwei Punkten $\small \vec{P}_A$ und $\small \vec{P}_B$ lässt sich durch Subtraktion beider Vektoren ermitteln: $\small \vec{P}_{AB} = \vec{P}_B - \vec{P}_A$.</ref> <ref name="umrechnung-deg-rad">Die Umrechnung eines Winkels $\small \alpha_{[\text{deg}]}$ im Gradmaß zu dem entsprechenden Winkel $\small \alpha_{[\text{rad}]}$ im Bogenmaß kann durch Multiplikation mit $\small \frac{\pi}{180\,^\circ}$ erfolgen: : $\small \alpha_{[\text{rad}]} = \alpha_{[\text{deg}]} \cdot \frac{\pi}{180\,^\circ}$</ref> </references> == Einzelnachweise == {{Reflist|30em|refs= <ref name="3dsource">Kern, Thomas: ''<u>Berechnung der allgemeinen Rotationsmatrix</u>''. PDF-Datei, http://www.3dsource.de/_download/Anhang_Rotation.pdf. Abruf: 02. März 2011</ref> <ref name="schema_von_falk1">Zurmühl, Rudolf: ''<u>Matrizen und ihre technischen Anwendungen</u>''. 4. neubearbeitete Auflage. Springer-Verlag, Berlin 1964. '''S. 17 ff.'''</ref> <ref name="schema_von_falk2">Falk, Sigurd: ''<u>Ein übersichtliches Schema für die Matrizenmultiplikation</u>''. In: ''Zeitschrift für Angewandte Mathematik und Mechanik'', Bd. '''31''' (4-5), '''S. 152-153'''. Wiley-VCH Verlag, 1951. {{DOI|10.1002/zamm.19510310409}}. ISSN 1521-4001.</ref> }} [[Category:Math]]
Summary:
Please note that all contributions to M.Eng. René Schwarz, Bremen/Merseburg are considered to be released under the Creative Commons Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz (see
web:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Column-width
(
edit
)
Template:DOI
(
edit
)
Template:Hide in print
(
edit
)
Template:Only in print
(
edit
)
Template:Reflist
(
edit
)
Help:Einführung in die Quaternionen-Mathematik/x3d-beispiel-würfel
(
edit
)
Help:Einführung in die Quaternionen-Mathematik/x3d-beispiel-würfel-gedreht
(
edit
)