Содержание
1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Афинные преобразования на плоскости . . . . . . . . . . . . . . . . . . . . .4
3. Однородные координаты точки . . . . . . . . . . . . . . . . . . . . . . . . . 9
4. Аффинные преобразования в пространстве . . . . . . . . . . . . . . . . . . 15
5. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
6. Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1. Введение
Вывод изображения на экран дисплея и разнообразные действия с ним, в том числе и визуальный анализ, требуют от пользователя достаточной геометрической грамотности. Геометрические понятия, формулы и факты, относящиеся, прежде всего, к плоскому и трехмерному случаям, играют в задачах компьютерной графики особую роль. Геометрические соображения, подходы и идеи в соединении с постоянно расширяющимися возможностями вычислительной техники являются неиссякаемым источником существенных продвижений на пути развития компьютерной графики, ее эффективного использования в научных и иных исследованиях. Порой даже самые простые геометрические методики обеспечивают заметные продвижения на отдельных этапах решения большой графической задачи.
Прежде всего, необходимо заметить, что особенности использования геометрических понятий, формул и фактов, как простых и хорошо известных, так и новых более сложных, требуют особого взгляда на них и иного осмысления.
Теперь необходимо рассмотреть графическую реализацию 3-х мерных объектов, т.к. она тесно связана со свойствами объектов. Система координат экрана, как известно, является двумерной, поэтому на экране возможна эмуляция 3-х мерной системы координат, расположеной наиболее удобно для последующих расчетов. В дальнейшем все объекты считаются 3-х мерными, а отображение осуществляется с помощью набора функций разработанной библиотеки.
Одним из примеров реализации данного подхода может служить следующий. Каждый объект, в простейшем случае, представляет собой параллелепипед и хранится в памяти размерами по трем осям. Также в его структуру входит набор специальных точек, отвечающих за соединение блоков в пространстве. В общем случае, это точка привязки и исходная точка. В целом, получается гибкая графическая модель, которая позволяет изменять размеры блоков практически мгновенно. Таким образом, появляется возможность осуществить простейший графический редактор трехмерных объектов. При этом все блоки будут изменяться, создавая общую графическую модель. Имея дело с графической моделью, можно реализовать вращение совокупности трехмерных объектов. Это осуществляется с помощью набора функций, которые производят вращение объектов. Для вращения каждого объекта существует алгоритм, который разбивает объект (в простейшем случае параллелепипед) на набор точек, каждая из которых вращается, используя простейшие преобразования в пространстве путем умножения матрицы радиус-вектора на матрицы преобразований в пространстве. Рассмотрим более подробно данный подход с формальной стороны.
2. Афинные преобразования на плоскости
В компьютерной графике все, что относится к двумерному случаю принято обозначать символом (2D) (2-dimention).
Допустим, что на плоскости введена прямолинейная координатная система. Тогда каждой точке М ставится в соответствие упорядоченная пара чисел (х, у) ее координат (рис. 1). Вводя на плоскости еще одну прямолинейную систему координат, мы ставим в соответствие той же точке М другую пару чисел – (x*, y*).
Рис. 3
В дальнейшем, формулы (2.1) и (2.2) будут рассматриваться как правило, согласно которому в заданной системе прямолинейных координат преобразуются точки плоскости.
В аффинных преобразованиях плоскости особую роль играют несколько вжных частных случаев, имеющих хорошо прослеживаемыегеометрические характеристики. При исследовании геометрического смысла числовых коэффицентов в формулах (2.1) и (2.2) для этих случаев удобно считать, что заданная система координат является прямоугольной декартовой.
1. Поворот вокруг начальной точки на угол j (рис. 4) описывается формулами:
х* = x cosj - y sinj, (2.3)
y* = x sinj - y cosj. (2.4)
2. Растяжение (сжатие) вдоль координатных осей можно задать так:
x* = ax, (2.5)
y* = dy, (2.6)
a > 0, d > 0. (2.7)
Растяжение (сжатие) вдоль оси абсцисс обеспечивается при условии, что a > 1 (a < 1). На рис. 5 a = d > 1.
3. Отражение (относительно оси абсцисс) (рис. 6) задается при помощи формул:
x* = x, (2.8)
y* = -y. (2.9)
4. На рис. 7 вектор переноса ММ* имеет координаты l, m. Перенос обеспечивает соотношения:
x* = x + l, (2.10)
y* = y + m. (2.11)
Рис. 4
Рис. 6