Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Rotatie van Vormen | Geometrische Transformaties
Geometrisch Modelleren met Python

Rotatie van Vormen

Veeg om het menu te tonen

Om een geometrische figuur, zoals een veelhoek, rond een punt (vaak het oorsprong) te roteren, gebruik je een specifieke wiskundige formule. Wanneer je een punt (x, y) rond het oorsprong roteert over een hoek θ (uitgedrukt in radialen), worden de nieuwe coördinaten (x', y') als volgt berekend:

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

Deze formule is afgeleid uit de trigonometrie en beschrijft hoe elk punt beweegt langs een cirkelboog gecentreerd op het oorsprong. In Python kun je de functies sinus en cosinus uit de math module gebruiken, en de hoek moet in radialen zijn voor deze functies.

Pas deze formule stap voor stap toe. Stel dat je een driehoek met hoekpunten (1, 0), (0, 1) en (-1, 0) 90 graden wilt roteren (dit is π/2 radialen) rond het oorsprong. Voor elk hoekpunt vul je de x- en y-waarden in de bovenstaande formule in en bereken je de nieuwe positie. Door dit voor alle hoekpunten te doen, krijg je de geroteerde driehoek.

In de geometrische modellering werk je vaak met veelhoeken die worden weergegeven als lijsten van punten. Om een volledige veelhoek te roteren, pas je de rotatieformule toe op elk hoekpunt in de lijst. Deze aanpak maakt het mogelijk om elke veelhoek te transformeren, ongeacht het aantal zijden, door eenvoudigweg door de punten te itereren en hun posities bij te werken.

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

Wat is een juiste uitspraak over het effect van het roteren van een veelhoek 90 graden rond het oorsprong?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 2. Hoofdstuk 3
some-alt