Векторный графический редактор
Автор: GreatDragon • Май 11, 2023 • Курсовая работа • 9,104 Слов (37 Страниц) • 165 Просмотры
Министерство науки и высшего образования РФ федеральное государственное бюджетное[pic 1]
образовательное учреждение высшего образования
«Самарский государственный технический университет» (ФГБОУ ВО «СамГТУ»)
Кафедра «Вычислительная техника»
ГРАФИЧЕСКИЕ
СИСТЕМЫ КОМПЬЮТЕРОВ
КУРСОВАЯ РАБОТА
на тему ВЕКТОРНЫЙ ГРАФИЧЕСКИЙ РЕДАКТОР
Вариант индивидуального задания №93
Руководитель
Доцент кафедры «Вычислительная техника» Пугачев А.И.
Выполнил обучающийся группы 3-ИАИТ-3 Ушков Д.Е.
Самара
2022
Оглавление
1. Техническое задание для курсовой работы 3
2. Реализация 4
2.1 Вспомогательный класс MyPoint: 4
2.2 Вспомогательная структура M 4
2.3.1 Fill - закрашивание многоугольника 5
2.3.2 PaintingLineInFigure – рисование ребер многоугольника 6
2.3.3 SearchYMinAndMax – нахождение минимального и максимального Y 6
2.3.4 CheckIntersection – добавление точки при пересечении с прямой Y 7
2.3.5 Check – проверка пересечение прямой Y с отрезком 7
3. Реализация функции Кубического сплайна 8
4. Реализация создания фигур 11
4.1 Fill – закрашивание фигуры. 12
4.2 ToAndFromCenter - перемещение фигуры в центр и обратно. 13
4.3 Создание фигуры «Правильный n-угольник» 13
4.4 Создание фигуры «Стрелка 1» 14
5. Поворот вокруг заданного центра на произвольный угол 15
5.1 GeometricTransformation- определяет над каким количеством фигур нужно сделать преобразование 15
5.2 OperationGeometric – определяет действие с фигурой 16
5.3 Rotation – метод для вычисления координат при вращении фигуры 16
6. Пропорциональное масштабирование относительно центра фигуры 17
6.1 Zoom – метод масштабирования фигуры 18
7. Зеркальное отражение относительно вертикальной прямой 18
7.1 Mirror – метод отражения фигуры 19
8. Реализация теоретико-множественных операций 20
8.1 Tmo – алгоритм построения фигур с помощью ТМО 20
9. Руководство использования 22
Техническое задание для курсовой работы
Описание метода в оглавлении. Разработать программу объектно-ориентированного графического редактора, обеспечивающего выполнение следующих основных функций:
- выбор, размещение на экране и визуализация примитивов из заданного набора;
- синтез более сложных фигур с помощью теоретико-множественных операций (ТМО) как над примитивами, так и над ранее синтезированными фигурами;
- выделение любого объекта, выведенного на экран, и выполнение над ним любой последовательности геометрических преобразований из заданного набора в интерактивном режиме;
- выделение любого объекта на экране и его удаление.
[pic 2]
Рисунок 1. Техническое задание из методички
Вариант 93
Нужно сделать:
- ER - Кубический сплайн
- Pgn - Правильный n-угольник
- Str1 - Стрелка 1
- Rc - Поворот вокруг заданного центра на произвольный угол
- Sxyf - Пропорциональное масштабирование относительно центра фигуры
- MV - Зеркальное отражение относительно вертикальной прямой
- / - разность
- ∪ - объединение
Реализация
2.1 Вспомогательный класс MyPoint:
Содержит в себя поля для решение таких задач как:
Определение функции и фигуры
Определение было или не было сделано ТМО (Теоретико-Множественных Операции)
Содержит в себе переменную Thirst для вычисления матриц 3х3
public class MyPoint
{
public float X;
public float Y;
public float Third;
public bool Function;
public bool DoTmo;
public MyPoint (float x = 0.0f, float y = 0.0f, float third = 1.0f)
{
X = x;
Y = y;
Third = third;
Function = false;
DoTmo = false;
}
public Point ToPoint () => new Point((int) X, (int) Y);
...