Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Обертання фігур | Геометричні перетворення
Геометричне моделювання з Python

Обертання фігур

Свайпніть щоб показати меню

Щоб обернути геометричну фігуру, наприклад, багатокутник, навколо точки (зазвичай початку координат), використовується спеціальна математична формула. При обертанні точки (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 у формулу вище й обчислюється нове положення. Виконання цих обчислень для всіх вершин дає обернений трикутник.

У геометричному моделюванні часто працюють з багатокутниками, представленими у вигляді списків точок. Щоб обернути весь багатокутник, формула обертання застосовується до кожної вершини у списку. Такий підхід дозволяє трансформувати будь-який багатокутник, незалежно від кількості сторін, просто ітеруючи його точки та оновлюючи їхні координати.

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

Яке твердження є правильним щодо впливу обертання багатокутника на 90 градусів навколо початку координат?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 3
some-alt