· рисование графических примитивов
· зеркальное преобразование пространства
Алгоритмы рисование графических примитивов
Рисование отрезков прямых
????????? ???????? ?????? ???????????? ??? ?????? ??????? LineTo(), ?? ??????? ??????? ?? ?????, ?????????? ??????? ???????, ??? ????????? ?????? ???????. ??????? ??????? ?????????? ? ????????? ?????? ???, ??? ??????????? ?????.
Рисование прямоугольников
Рисование отрезков прямых производится при помощи функции Rectangle(), от текущей позиции до точки, координаты которой указаны, как аргументы данной функции. Текущая позиция изменяется и находится теперь там, где закончилась линия.
1)
2)
Рисование треугольников
Рисование треугольников производится при помощи последовательной прорисовки его граней с помощью отдельных линий. Сначала рисуется одна линия, после чего, имея уже две вершины, необходимо задать третью. К точке следующего щелчка курсора из первых 2 вершин прорисовываются еще две линии, все вместе с первой образуя треугольник.
1)
(X0;Y0) – текущая позиция | |
?
2)
(X1;Y1) – аргументы функций LineTo() | |
Y
Рисование эллипсов
Для рисования эллипсов нельзя использовать функцию Ellipse(), так как в этом случае пропадает возможность его дальнейшего преобразования «зеркалом». Поэтому рисование эллипсов осуществляется «по точкам», пиксели на форме закрашиваются по заданным математическим формулам, образуя эллипс. При этом визуально создание эллипсов выглядит, как и в случае использования функции Ellipse(): мышью отмечаются координаты верхнего левого и нижнего правого угла прямоугольника, в который вписан эллипс.
(ex1;ey1) – текущая позиция | |
1)
2)
Rx=(abs(ex1-ex2))/2;
Ry=(abs(ey1-ey2))/2;
Xc=(ex1+ex2)/2;
Yc=(ey1+ey2)/2;
Алгоритм преобразования пространства
Для преобразования пространства преобразователем типа «зеркало» необходимо начать с создания линии «зеркала». Она рисуется как и обычный примитив line. Далее для зеркального отображения объектов пространства относительно этой линии используется следующий алгоритм состоящий из нескольких шагов:
1.
??????? ???????? ?????? ??????? ????? ?? ????? ??????, ???????????? ??????? ?????????????? ??????????????
2. Смещаем преобразуемую точку P пространства на вектор –OB, получаем точку P1
?
3. Находим угол α между AB и осью ОХ
?
4. Поворачиваем Р вокруг Р1 на угол α, получаем точку Р2
?
5. Смещаем Р2 на вектор ОВ и получаем точку Р!. Преобразование завершено
?
4.3 Реализация алгоритма преобразования пространства
Реализацию алгоритма преобразования пространства осуществляет метод Mirror (Листинг 3.1.)
К-во Просмотров: 471
Бесплатно скачать Курсовая работа: Векторный графический редактор