Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Rotasjon av Former | Geometriske transformasjoner
Geometrisk Modellering med Python

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.

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

Hva er en sann påstand om effekten av å rotere et polygon 90 grader rundt origo?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 2. Kapittel 3
some-alt