Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Matrizen als Drehung, Skalierung und Spiegelung

Nach dieser Lektion: Ich kann eine Matrix als Drehung, Skalierung oder Spiegelung lesen und auf Punkte anwenden.

Lektion, 65 Min.3 BefehleJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Wie dreht ein Spiel ein Bild?

Eine lineare Abbildung verschiebt jeden Punkt nach derselben Regel, und eine Matrix ist die Rechenvorschrift dazu. So drehen, vergrößern und spiegeln Bildprogramme und Spiele ihre Figuren.

Ein Dreieck hat drei Ecken. Multiplizieren Sie jede Ecke mit einer Matrix, hat das ganze Dreieck sich gedreht, gestreckt oder gespiegelt.

Am Ende dieser Lektion

Notiz

Ich kann eine Matrix als Drehung, Skalierung oder Spiegelung lesen und auf Punkte anwenden.

Schlüsselwörter

BegriffWas er bedeutet
Abbildungeine Regel, die jeden Punkt auf einen neuen Punkt abbildet
Skalierungeine Streckung oder Stauchung um einen Faktor
Spiegelungein Umklappen an einer Achse
Drehungein Drehen um den Nullpunkt um einen Winkel
Hintereinanderausführungerst eine Abbildung, dann die nächste

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Matrix bewegt jeden Punkt

Ein Punkt auf dem Bildschirm ist ein Vektor [x, y]. Multiplizieren Sie eine 2-mal-2-Matrix mit ihm, erhalten Sie einen neuen Punkt. Das ist eine Abbildung.

Die Spalten der Matrix zeigen, wohin die Punkte [1, 0] und [0, 1] gehen. Daraus folgt, wohin jeder andere Punkt geht.

Beispiel: vier Matrizen und ihre Wirkung

MatrixWirkungPunkt [2, 1] wird
[[2, 0], [0, 2]]Skalierung um den Faktor 2[4, 2]
[[1, 0], [0, -1]]Spiegelung an der x-Achse[2, -1]
[[0, -1], [1, 0]]Drehung um 90 Grad[-1, 2]
[[-1, 0], [0, -1]]Drehung um 180 Grad[-2, -1]

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Dreieck drehen

Code: python
# Drehung um 90 Grad gegen den Uhrzeigersinn
dreh = [[0, -1], [1, 0]]
ecken = [[1, 0], [2, 0], [1, 1]]
neue_ecken = []
for punkt in ecken:
    x = dreh[0][0] * punkt[0] + dreh[0][1] * punkt[1]
    y = dreh[1][0] * punkt[0] + dreh[1][1] * punkt[1]
    neue_ecken.append([x, y])
print(neue_ecken)
# Ändern Sie dreh in [[2, 0], [0, 2]]. Die Ecken werden doppelt so weit weg.

Einen Punkt um 90 Grad drehen

Befehl
docker exec jupyter python3 -c "import numpy as np; d = np.array([[0, -1], [1, 0]]); print((d @ np.array([2, 1])).tolist())"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine Drehung steht in Sinus und Kosinus

Eine Drehung um den Winkel w hat die Matrix mit Kosinus w und minus Sinus w oben, Sinus w und Kosinus w unten. Die Länge jedes Punktes bleibt gleich.

Bei 90 Grad ist der Kosinus 0 und der Sinus 1. Daher die einfachen Zahlen oben. Für andere Winkel rechnet der Computer mit Dezimalzahlen.

Eine Drehung um 30 Grad

Befehl
docker exec jupyter python3 -c "import numpy as np; w = np.radians(30); d = np.array([[np.cos(w), -np.sin(w)], [np.sin(w), np.cos(w)]]); print(np.round(d @ np.array([1, 0]), 3).tolist())"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Zwei Abbildungen ergeben ein Matrixprodukt

Wenden Sie erst F an und dann R, ist das eine einzige Abbildung mit der Matrix R mal F. Die zuerst angewandte Matrix steht rechts, weil sie dem Punkt am nächsten ist.

Zweimal um 90 Grad drehen ergibt eine Drehung um 180 Grad. Die Matrix dafür ist R mal R.

Beispiel: spiegeln und drehen, beide Reihenfolgen

ReihenfolgeMatrixPunkt [1, 0] wird
Erst spiegeln, dann drehen[[0, 1], [1, 0]][0, 1]
Erst drehen, dann spiegeln[[0, -1], [-1, 0]][0, -1]

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Zweimal drehen

Befehl
docker exec jupyter python3 -c "import numpy as np; d = np.array([[0, -1], [1, 0]]); print((d @ d).tolist())"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele denken, bei zwei Abbildungen sei die Reihenfolge gleichgültig. Das stimmt nicht. Erst spiegeln und dann drehen bringt den Punkt [1, 0] nach [0, 1], die umgekehrte Reihenfolge nach [0, -1]. Gleichgültig ist sie nur bei Drehungen allein oder Skalierungen allein.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.