Лабораторная работа №4. Аффинные преобразования на плоскости и вспомогательные алгоритмы
Требуемые условия завершения
Открыто с: вторник, 24 сентября 2024, 08:00
Срок сдачи: вторник, 1 октября 2024, 23:00
Программа должна содержать следующие возможности:
- Создание полигонов через клики мышью. Точка и ребро считаются полигонами с одной и двумя вершинами соответственно.
- Очистка сцены (удаление всех полигонов).
- Применение аффинных преобразований к полигону (Все преобразования должны быть реализованы матрицами!):
- Смещение на
dx
,dy
- Поворот вокруг заданной пользователем точки
- Поворот вокруг своего центра
- Масштабирование относительно заданной пользователем точки
- Масштабирование относительно своего центра
- Смещение на
- Поиск точки пересечения двух ребер (добавление второго ребра мышкой, динамически).
- Проверка принадлежит ли заданная пользователем (с помощью мыши) точка выпуклому и невыпуклому полигонам
- Классифицировать положение точки относительно ребра (справа или слева)
N.B. Проверка очередной точки или ребра в последних трёх пунктах не должна требовать очистки экрана, перерисовки полигона, повторного выбора инструмента и т.п.