📘 О чем эта работа
В отчете реализованы и исследованы базовые двумерные аффинные преобразования для простого геометрического объекта (стрелка). Предметом является алгоритмическая реализация операций переноса, отражения, масштабирования и поворота с использованием гомогенных координат и 3x3 матриц; объект исследования — набор вершин стрелки с координатами x = [2, -2, -2, 0, 2, 2], y = [-4, -2, 4, 2, 4, -4].
📚 Что внутри
Отчет содержит практическую реализацию и пошаговую визуализацию каждого преобразования в среде Jupyter Notebook с кодом на Python. Конкретное содержание:
- Исходный массив координат стрелки и функция affine_transform (формирование гомогенных координат через np.vstack и умножение матриц).
- Матрицы преобразований 3x3: матрица переноса (сдвиг на (2,1)), матрица отражения относительно оси X, матрица масштабирования с коэффициентами (2, 0.5), матрица поворота на 45° (θ = π/4).
- Визуализации с использованием Matplotlib: построение исходной фигуры и результатов каждого этапа, добавление координатных осей и выделение точки отсчета.
- Листинг программы с комментариями и готовыми фрагментами кода для прямого запуска в Jupyter (NumPy, Matplotlib).
- Заключение с практическими выводами о применимости матричного подхода и рекомендациями по использованию кода в учебных демонстрациях.
📊 Для кого подходит
Полезно для студентов и преподавателей курсов по компьютерной графике и визуализации, дисциплин по компьютерной графике, численным методам и мультимедиа. Подходит как учебное задание для 1–3 практических занятий и как демонстрация работы с матрицами и гомогенными координатами.
✨ Особенности
Работа содержит готовый, подробно документированный код для запуска в Jupyter Notebook, реальные численные примеры (координаты стрелки и конкретные матрицы преобразований), а также визуализацию каждого этапа. Матрицы заданы явно (перенос: [[1,0,2],[0,1,1],[0,0,1]]; отражение по X: [[1,0,0],[0,-1,0],[0,0,1]]; масштабирование: [[2,0,0],[0,0.5,0],[0,0,1]]; поворот: матрица с cos/sin для θ=π/4), что упрощает адаптацию и расширение кода под другие фигуры или последовательные преобразования.
❓ Частые вопросы
Подойдет ли для моего ВУЗа?
Структура отчета соответствует стандартным требованиям лабораторных работ: вводная часть, цель, метод, листинг кода, визуальные результаты и заключение.
Можно адаптировать?
Да. Матрицы и функция affine_transform легко изменяются для других коэффициентов и точек отсчета; код на Python пригоден для включения в лабораторные задания или демонстрации.
Дополнительно
- Код снабжен функцией plot_axes для отображения осей и подписи точек отсчета.
- Реализован пример пошагового построения в одном Jupyter-файле: несколько subplot'ов для сравнения исходной и преобразованных фигур.
- Результаты пригодны для образовательных презентаций и дальнейшей доработки в проектах по 2D-графике.