Лабораторная работа №4. Аффинные преобразования на плоскости и вспомогательные алгоритмы
Требуемые условия завершения
Открыто с: среда, 27 сентября 2023, 08:00
Срок сдачи: среда, 11 октября 2023, 23:00
Приложение должно быть интерактивным. Примитивы задаются мышкой ( а не с клавиатуры).
Программа должна содержать следующие возможности:
- Задать текущий примитив: точка, ребро (отрезок), полигон (мин требование -- квадрат). Они рисуются мышкой.
- Очистить сцену.
- Применение аффинных преобразований к полигону: смещение на dx, dy; поворот вокруг произвольной точки (точка задается пользователем мышкой) и/или вокруг своего центра; масштабирование относительно произвольной точки (точка задается пользователем мышкой) и/или относительно своего центра. Все преобразования должны быть реализованы матрицами!
- Поворот ребра на 90 градусов вокруг своего центра.
- Поиск точки пересечения двух ребер (добавление второго ребра мышкой, динамически).
Программа должна позволять выполнить следующие проверки:
- Принадлежит ли точка выпуклому многоугольнику (задание точки мышкой).
- Принадлежит ли точка невыпуклому многоугольнику (задание точки мышкой).
- Классифицировать положение точки относительно ребра (задание точки мышкой).