fix force refresh bug
This commit is contained in:
@@ -0,0 +1,245 @@
|
||||
<!doctype html>
|
||||
<html lang="en" style="height:100%;margin:0;">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>Rotation eines Würfels mit Matrizen</title>
|
||||
|
||||
<!-- Load main stylesheet asynchronously -->
|
||||
<link rel="preload" as="style" href="/css/main.css" onload="this.rel='stylesheet'">
|
||||
<link rel="preload" as="style" href="/css/prism.css" onload="this.rel='stylesheet'">
|
||||
<noscript><link rel="stylesheet" href="/css/main.css"></noscript>
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="/css/favicon/favicon.ico">
|
||||
|
||||
<!-- Local JS -->
|
||||
<script src="/js/shared/theme.js"></script>
|
||||
<script src="/js/post/download.js" defer></script>
|
||||
|
||||
<!-- Prism (code highlighting) -->
|
||||
<script src="/js/post/prism.js" defer></script>
|
||||
|
||||
<!-- Dynamic MathJax loader -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const hasMath = /\$\$(.|[\r\n])*?\$\$|\$(?!\$)(.*?)\$/.test(document.body.innerHTML);
|
||||
if (hasMath) {
|
||||
const mj = document.createElement('script');
|
||||
mj.src = '/package/js/mathjax.js';
|
||||
mj.defer = true;
|
||||
document.head.appendChild(mj);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- Service worker registration -->
|
||||
<script>
|
||||
if ('serviceWorker' in navigator) {
|
||||
navigator.serviceWorker.register('/js/post/sw.js').catch(console.error);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<main class="container">
|
||||
<h1 onclick="window.location.href=window.location.origin" style="cursor:pointer;display:flex;align-items:center;gap:8px;font-size:1.5em;margin:0;">
|
||||
<img src="/css/icons/back.webp" width="32" height="32" alt="⬅" loading="lazy">
|
||||
Rotation eines Würfels mit Matrizen <noscript>(Enable JavaScript!)</noscript>
|
||||
</h1>
|
||||
<img src="/css/icons/written.webp" width="32" height="32" alt="📄" loading="lazy" style="vertical-align:middle;margin-left:40px;cursor:pointer;" onclick="toggleDarkMode();" />
|
||||
<div class="meta" style="display:inline;cursor:pointer;" onclick="toggleDarkMode();">
|
||||
Written @Wed May 27 11:21:22 2026
|
||||
</div>
|
||||
<hr style="margin:10px 0;">
|
||||
<div class="html-content">
|
||||
<h1>Rotation eines Würfels mit Matrizen</h1>
|
||||
<h2>1. Der Würfel im Raum</h2>
|
||||
<p>Ein Würfel im Ursprung des Koordinatensystems (Mittelpunkt bei ( (0,0,0) )) und der Kantenlänge 2 besitzt die Eckpunkte:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\begin{aligned}
|
||||
A &= (1, 1, 1), & B &= (1, 1, -1), & C &= (1, -1, 1), \\
|
||||
D &= (1, -1, -1), & E &= (-1, 1, 1), & F &= (-1, 1, -1), \\
|
||||
G &= (-1, -1, 1), & H &= (-1, -1, -1)
|
||||
\end{aligned}
|
||||
$$</div>
|
||||
<p>Jeder Punkt kann als Spaltenvektor dargestellt werden:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\mathbf{v} =
|
||||
\begin{pmatrix}
|
||||
x \\
|
||||
y \\
|
||||
z
|
||||
\end{pmatrix}.
|
||||
$$</div>
|
||||
<p>Eine Drehung des Würfels im Raum kann mathematisch durch <strong>Multiplikation mit einer Rotationsmatrix</strong> beschrieben werden.</p>
|
||||
<hr />
|
||||
<h2>2. Rotationsmatrizen im 3D-Raum</h2>
|
||||
<p>Eine Rotationsmatrix beschreibt eine Drehung um eine bestimmte Achse. Dabei bleibt die Länge der Vektoren unverändert, ebenso die Winkel zwischen ihnen.
|
||||
Es gibt drei elementare Rotationen: um die <strong>x-Achse</strong>, die <strong>y-Achse</strong> und die <strong>z-Achse</strong>.</p>
|
||||
<hr />
|
||||
<h3>a) Rotation um die x-Achse</h3>
|
||||
|
||||
<div class="math-block">$$
|
||||
\mathbf{v}' = R_x(\theta)\mathbf{v} =
|
||||
\begin{pmatrix}
|
||||
x \\
|
||||
y \cos\theta - z \sin\theta \\
|
||||
y \sin\theta + z \cos\theta
|
||||
\end{pmatrix}
|
||||
$$</div>
|
||||
<p>Die x-Koordinate bleibt bei dieser Drehung unverändert. Der Punkt</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\mathbf{v}' = R_x(\theta)\mathbf{v} =
|
||||
\begin{pmatrix}
|
||||
x \\
|
||||
y \cos\theta - z \sin\theta \\
|
||||
y \sin\theta + z \cos\theta
|
||||
\end{pmatrix}
|
||||
$$</div>
|
||||
<hr />
|
||||
<h3>b) Rotation um die y-Achse</h3>
|
||||
|
||||
<div class="math-block">$$
|
||||
R_y(\theta) =
|
||||
\begin{pmatrix}
|
||||
\cos\theta & 0 & \sin\theta \\
|
||||
0 & 1 & 0 \\
|
||||
-\sin\theta & 0 & \cos\theta
|
||||
\end{pmatrix}
|
||||
$$</div>
|
||||
<p>Dabei bleibt die y-Koordinate gleich, x und z verändern sich.</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\mathbf{v}' = R_y(\theta)\mathbf{v} =
|
||||
\begin{pmatrix}
|
||||
x \cos\theta + z \sin\theta \\
|
||||
y \\
|
||||
- x \sin\theta + z \cos\theta
|
||||
\end{pmatrix}
|
||||
$$</div>
|
||||
<hr />
|
||||
<h3>c) Rotation um die z-Achse</h3>
|
||||
|
||||
<div class="math-block">$$
|
||||
R_z(\theta) =
|
||||
\begin{pmatrix}
|
||||
\cos\theta & -\sin\theta & 0 \\
|
||||
\sin\theta & \cos\theta & 0 \\
|
||||
0 & 0 & 1
|
||||
\end{pmatrix}
|
||||
$$</div>
|
||||
<p>Hier bleibt z unverändert, während x und y rotieren.</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\mathbf{v}' = R_z(\theta)\mathbf{v} =
|
||||
\begin{pmatrix}
|
||||
x \cos\theta - y \sin\theta \\
|
||||
x \sin\theta + y \cos\theta \\
|
||||
z
|
||||
\end{pmatrix}
|
||||
$$</div>
|
||||
<hr />
|
||||
<h2>3. Kombination mehrerer Rotationen</h2>
|
||||
<p>Oft wird ein Objekt nacheinander um mehrere Achsen gedreht.
|
||||
Die Gesamtrotation ergibt sich durch <strong>Multiplikation der einzelnen Rotationsmatrizen</strong>.</p>
|
||||
<p>Beispiel:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
R_{\text{gesamt}} = R_x(\alpha) \cdot R_y(\beta) \cdot R_z(\gamma).
|
||||
$$</div>
|
||||
<p>Ein Punkt \(v\) wird dann abgebildet auf:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\mathbf{v}' = R_{\text{gesamt}}\mathbf{v}.
|
||||
$$</div>
|
||||
<p>Die Reihenfolge ist dabei wesentlich, da die Matrixmultiplikation <strong>nicht kommutativ</strong> ist:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
R_x R_y \neq R_y R_x.
|
||||
$$</div>
|
||||
<p>Das bedeutet: Zuerst um die x-Achse und danach um die y-Achse zu drehen führt zu einem anderen Ergebnis, als die Reihenfolge umzukehren.</p>
|
||||
<hr />
|
||||
<h2>4. Matrixmultiplikation</h2>
|
||||
<p>Die Multiplikation zweier Matrizen (A) und (B) (jeweils 3×3) ergibt eine neue Matrix (C = A \cdot B) mit den Einträgen:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
c_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} + a_{i3}b_{3j}.
|
||||
$$</div>
|
||||
<p>Allgemein gilt:</p>
|
||||
<ul>
|
||||
<li>Jede Zeile von (A) wird mit jeder Spalte von (B) multipliziert.</li>
|
||||
<li>Die Summe dieser Produkte ergibt das jeweilige Element von (C).</li>
|
||||
</ul>
|
||||
<p>So kann man Schritt für Schritt die Gesamtrotationsmatrix berechnen.</p>
|
||||
<hr />
|
||||
<h2>5. Beispiel für (\(\theta = 45^\circ\))</h2>
|
||||
<p>Für den Winkel \(\theta = 45^\circ = \frac{\pi}{4}\) gilt:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\cos\theta = \sin\theta = \frac{\sqrt{2}}{2}.
|
||||
$$</div>
|
||||
<p>Damit lautet die Rotationsmatrix um die x-Achse:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
R_x(45^\circ) =
|
||||
\begin{pmatrix}
|
||||
1 & 0 & 0 \\
|
||||
0 & \tfrac{\sqrt{2}}{2} & -\tfrac{\sqrt{2}}{2} \\
|
||||
0 & \tfrac{\sqrt{2}}{2} & \tfrac{\sqrt{2}}{2}
|
||||
\end{pmatrix}
|
||||
$$</div>
|
||||
<p>Wendet man diese Matrix auf den Punkt \(\mathbf{A} = (1, 1, 1)\) an, ergibt sich:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\begin{aligned}
|
||||
x' &= 1, \\
|
||||
y' &= 1 \cdot \tfrac{\sqrt{2}}{2} - 1 \cdot \tfrac{\sqrt{2}}{2} = 0, \\
|
||||
z' &= 1 \cdot \tfrac{\sqrt{2}}{2} + 1 \cdot \tfrac{\sqrt{2}}{2} = \sqrt{2}.
|
||||
\end{aligned}
|
||||
$$</div>
|
||||
<p>Der neue Punkt ist also:</p>
|
||||
|
||||
<div class="math-block">$$
|
||||
\mathbf{A}' = (1, 0, \sqrt{2}).
|
||||
$$</div>
|
||||
<p>Der Punkt wurde damit um die x-Achse um 45° gedreht.</p>
|
||||
<hr />
|
||||
<h2>6. Zusammenfassung</h2>
|
||||
<ul>
|
||||
<li>Eine <strong>Rotationsmatrix</strong> beschreibt eine Drehung im Raum.</li>
|
||||
<li>Die Länge eines Vektors bleibt bei der Rotation unverändert.</li>
|
||||
<li>Es gibt drei Grundmatrizen: \(R_x(\theta)\), \(R_y(\theta)\) und \(R_z(\theta)\).</li>
|
||||
<li>Durch <strong>Multiplikation</strong> kann man mehrere Drehungen kombinieren.</li>
|
||||
<li>Die Reihenfolge der Rotationen ist <strong>nicht vertauschbar</strong>.</li>
|
||||
<li>Bei \(45^\circ\) erscheinen häufig die Werte \(\frac{\sqrt{2}}{2}\) und \(\frac{1}{2}\).</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer style="margin-top:auto;width:100%;">
|
||||
<hr style="margin:10px 0;">
|
||||
<img src="/css/icons/date.webp" width="16" height="16" alt="date" loading="lazy">
|
||||
2026-05-27 11:21:22<br>
|
||||
|
||||
<img src="/css/icons/magnifier.webp" width="16" height="16" alt="Hash1" loading="lazy">
|
||||
Hash 1 (<b>UTF-8</b>)<i>:dG9tYm95IHRvdWNhbg==</i><br>
|
||||
|
||||
<img src="/css/icons/magnifier.webp" width="16" height="16" alt="Hash2" loading="lazy">
|
||||
Hash 2 (<b>Windows-1252</b>)<i>:ZmVtYm95IGZsYW1pbmdv</i><br>
|
||||
|
||||
<span style="display:inline-flex;align-items:center;gap:8px;">
|
||||
<img src="/css/icons/save.webp" width="16" height="16" alt="Save" loading="lazy">
|
||||
<a id="download-md">Download as Markdown</a>
|
||||
|
||||
<span style="border-left:1px solid #888;height:16px;"></span>
|
||||
|
||||
<img src="/css/icons/script.webp" width="16" height="16" alt="Script" loading="lazy">
|
||||
<a id="download-html">Download as HTML</a>
|
||||
</span>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user