Обертання фігур
Свайпніть щоб показати меню
Щоб обернути геометричну фігуру, наприклад, багатокутник, навколо точки (зазвичай початку координат), використовується спеціальна математична формула. При обертанні точки (x, y) навколо початку координат на кут θ (у радіанах) нові координати (x', y') обчислюються так:
x' = x * cos(θ) - y * sin(θ);y' = x * sin(θ) + y * cos(θ).
Ця формула походить з тригонометрії і описує, як кожна точка рухається по дузі кола з центром у початку координат. У Python для доступу до функцій синуса та косинуса використовується модуль math, і кут для цих функцій має бути у радіанах.
Застосовуйте цю формулу крок за кроком. Припустимо, потрібно обернути трикутник з вершинами у точках (1, 0), (0, 1) та (-1, 0) на 90 градусів (тобто на π/2 радіан) навколо початку координат. Для кожної вершини підставляються значення x та y у формулу вище й обчислюється нове положення. Виконання цих обчислень для всіх вершин дає обернений трикутник.
У геометричному моделюванні часто працюють з багатокутниками, представленими у вигляді списків точок. Щоб обернути весь багатокутник, формула обертання застосовується до кожної вершини у списку. Такий підхід дозволяє трансформувати будь-який багатокутник, незалежно від кількості сторін, просто ітеруючи його точки та оновлюючи їхні координати.
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)
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат