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.
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)
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.