Rotasjon av Former
Sveip for å vise menyen
For å rotere en geometrisk figur, som et polygon, rundt et punkt (ofte origo), brukes en spesifikk matematisk formel. Når et punkt (x, y) roteres rundt origo med en vinkel θ (målt i radianer), beregnes de nye koordinatene (x', y') slik:
x' = x * cos(θ) - y * sin(θ);y' = x * sin(θ) + y * cos(θ).
Denne formelen er avledet fra trigonometri og beskriver hvordan hvert punkt beveger seg langs en sirkelbue med sentrum i origo. I Python kan du bruke math-modulen for å få tilgang til funksjonene sinus og cosinus, og vinkelen må være i radianer for disse funksjonene.
Bruk denne formelen steg for steg. Anta at du vil rotere en trekant med hjørner i (1, 0), (0, 1) og (-1, 0) med 90 grader (som er π/2 radianer) rundt origo. For hvert hjørne setter du inn x- og y-verdiene i formelen over og beregner den nye posisjonen. Når dette gjøres for alle hjørnene, får du den roterte trekanten.
I geometrisk modellering arbeider du ofte med polygoner representert som lister av punkter. For å rotere et helt polygon, bruker du rotasjonsformelen på hvert hjørne i listen. Denne metoden gjør det mulig å transformere ethvert polygon, uavhengig av antall sider, ved ganske enkelt å iterere gjennom punktene og oppdatere posisjonene deres.
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)
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår