Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Rotation von Formen | Geometrische Transformationen
Geometrische Modellierung mit Python

Rotation von Formen

Swipe um das Menü anzuzeigen

Um eine geometrische Figur, wie zum Beispiel ein Polygon, um einen Punkt (häufig den Ursprung) zu drehen, wird eine spezielle mathematische Formel verwendet. Wenn ein Punkt (x, y) um den Ursprung um einen Winkel θ (im Bogenmaß) gedreht wird, berechnen sich die neuen Koordinaten (x', y') wie folgt:

  • x' = x * cos(θ) - y * sin(θ);
  • y' = x * sin(θ) + y * cos(θ).

Diese Formel stammt aus der Trigonometrie und beschreibt, wie sich jeder Punkt entlang eines Kreisbogen bewegt, dessen Mittelpunkt der Ursprung ist. In Python kann das math-Modul verwendet werden, um auf die Funktionen sinus und cosinus zuzugreifen; der Winkel muss dabei im Bogenmaß angegeben werden.

Wende diese Formel schrittweise an. Angenommen, ein Dreieck mit den Eckpunkten (1, 0), (0, 1) und (-1, 0) soll um 90 Grad (das entspricht π/2 Bogenmaß) um den Ursprung gedreht werden. Für jeden Eckpunkt werden die x- und y-Werte in die obige Formel eingesetzt und die neue Position berechnet. Durch diese Berechnung für alle Eckpunkte erhält man das gedrehte Dreieck.

Im geometrischen Modellieren arbeitet man häufig mit Polygonen, die als Listen von Punkten dargestellt werden. Um ein ganzes Polygon zu drehen, wird die Rotationsformel auf jeden Eckpunkt in der Liste angewendet. Mit diesem Ansatz kann jedes Polygon, unabhängig von der Anzahl der Seiten, durch einfaches Durchlaufen seiner Punkte und Aktualisieren der Positionen transformiert werden.

12345678910111213141516171819202122232425
import math def rotate_polygon(points, angle_radians): """Rotate a polygon around the origin by a specified angle. Args: points: List of (x, y) tuples representing the polygon's vertices. angle_radians: The rotation angle in radians. Returns: List of (x', y') tuples representing the rotated vertices. """ cos_theta = math.cos(angle_radians) sin_theta = math.sin(angle_radians) rotated = [] for x, y in points: x_new = x * cos_theta - y * sin_theta y_new = x * sin_theta + y * cos_theta rotated.append((x_new, y_new)) return rotated # Example usage: triangle = [(1, 0), (0, 1), (-1, 0)] rotated_triangle = rotate_polygon(triangle, math.pi / 2) print(rotated_triangle)
question mark

Welche Aussage über die Wirkung einer Drehung eines Polygons um 90 Grad um den Ursprung ist richtig?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 2. Kapitel 3
some-alt