Rotation av former
Svep för att visa menyn
För att rotera en geometrisk figur, såsom en polygon, runt en punkt (ofta origo), används en specifik matematisk formel. När du roterar en punkt (x, y) runt origo med en vinkel θ (mätt i radianer), beräknas de nya koordinaterna (x', y') enligt följande:
x' = x * cos(θ) - y * sin(θ);y' = x * sin(θ) + y * cos(θ).
Denna formel härleds från trigonometri och beskriver hur varje punkt rör sig längs en cirkulär båge centrerad vid origo. I Python kan du använda modulen math för att komma åt funktionerna sinus och cosinus, och vinkeln måste anges i radianer för dessa funktioner.
Tillämpa denna formel steg för steg. Antag att du vill rotera en triangel med hörn i (1, 0), (0, 1) och (-1, 0) med 90 grader (vilket är π/2 radianer) runt origo. För varje hörn sätter du in x- och y-värdena i formeln ovan och beräknar den nya positionen. Genom att göra detta för alla hörn får du den roterade triangeln.
Inom geometrisk modellering arbetar du ofta med polygoner representerade som listor av punkter. För att rotera en hel polygon tillämpar du rotationsformeln på varje hörn i listan. Detta tillvägagångssätt gör det möjligt att transformera vilken polygon som helst, oavsett antal sidor, genom att helt enkelt iterera genom dess punkter och uppdatera deras positioner.
12345678910111213141516171819202122232425import 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)
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal