Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Muotojen Kierto | Geometriset muunnokset
Geometrinen Mallinnus Pythonilla

Muotojen Kierto

Pyyhkäise näyttääksesi valikon

Kun haluat kiertää geometrisen kuvion, kuten monikulmion, pisteen (yleensä origon) ympäri, käytät tiettyä matemaattista kaavaa. Kun kierrät pistettä (x, y) origon ympäri kulmalla θ (radianeina mitattuna), uudet koordinaatit (x', y') lasketaan seuraavasti:

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

Tämä kaava perustuu trigonometriaan ja kuvaa, miten kukin piste liikkuu ympyrän kaarella, jonka keskipisteenä on origo. Pythonissa voit käyttää math-moduulia saadaksesi käyttöön sinin ja kosinin funktiot, ja kulman tulee olla radiaaneina näitä funktioita varten.

Sovella tätä kaavaa vaiheittain. Oletetaan, että haluat kiertää kolmion, jonka kärjet ovat kohdissa (1, 0), (0, 1) ja (-1, 0), 90 astetta (eli π/2 radiaania) origon ympäri. Jokaisen kärjen kohdalla sijoitat x- ja y-arvot yllä olevaan kaavaan ja lasket uuden sijainnin. Kun teet tämän kaikille kärjille, saat kiertyneen kolmion.

Geometrisessa mallinnuksessa työskennellään usein monikulmioiden kanssa, jotka esitetään pisteiden listana. Koko monikulmion kiertämiseksi sovelletaan kiertokaavaa jokaiselle kärjelle listassa. Tämä lähestymistapa mahdollistaa minkä tahansa monikulmion muuntamisen, riippumatta sivujen määrästä, käymällä pisteet läpi ja päivittämällä niiden sijainnit.

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

Mikä seuraavista väittämistä pitää paikkansa, kun monikulmiota kierretään 90 astetta origon ympäri?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 3
some-alt