Компьютерная геометрия и графика. Лекция 6
План занятия: Виды проектирования. Обобщенные координаты пространства. Матричные преобразования.
Проектирование объекта с помощью пучка прямых может быть осуществлено двумя способами: Перспективное проектирование: Ортогональное проектирование: Через каждую точку проектируемого объекта проводим прямую из заданного проектирующего пучка и находим пересечения этой прямой с плоскостью изображения. Через каждую точку проектируемого объекта проводим прямую из бесконечности перпендикулярно плоскости изображения и находим пересечения с этой плоскостью. Все проецирующие прямые параллельны.
В соответствии со взаимным расположением плоскости проектирования и координатных осей различают две вида проекций: Диметрия. Изометрия.
Диметрия. Два угла между нормалью картинной плоскости и координатными осями равны. Третий угол X Y Z По оси Ох расстояние в два раза меньше реального. Например, куб будет выглядеть так:
Изометрия. Все три угла между нормалью картинной плоскости и координатными осями равны. (каждый ) X Y Z По каждой из осей реальное расстояние, без искажений. Например, куб будет выглядеть так:
Как преобразовать координаты точки из реальных в экранные при разных моделях проектирования? ?
Наш экран: XX YY Имея точку с координатами (X,Y,Z) преобразуем ее из диметрии в экранные координаты (XX,YY) Формулы перехода:
Наш экран: XX YY Имея точку с координатами (X,Y,Z) преобразуем ее из изометрии в экранные координаты (XX,YY) Формулы перехода:
Поворот системы координат вокруг оси Х на : Осуществляется умножением координат на такую матрицу. Операция поворота не коммутативна. Повернуть относительно Х, а потом относительно Y на некоторый угол, не все равно, что повернуть относительно Y, а потом относительно Х.
Обобщенные координаты.
Обобщенные координаты это координаты вида (a,b,c,d). Вводятся для более быстрой и точной работы с По этим формулам очевидно, что (x,y,z) однозначно определяются по (a,b,c,d), но (a,b,c,d) не однозначно определяются по (x,y,z).
Но d может быть равным нулю, не смотря на то, что оно стоит в знаменателе. В этом случае рассматриваем (x*d, y*d, z*d, d) Таким образом просто будет задан вектор (x,y,z) бесконечной длины. НАПРИМЕР: (1,2,0,0) 1 2 X Y
Поворот в обобщенных координатах : Осуществляется умножением координат на такую матрицу. Получается, что a,b и c умножились на матрицу поворота, а d осталось прежним. Операция поворота не коммутативна.
Параллельный перенос (по Х): Xн=Хс + Х Координата Х в новой системе равна сумме координаты Х в старой системе координат и смещения: а н а с d н d с Х Если рассмотреть эту формулу в обобщенных координатах, то мы получим следующее равенство: d с =d н поэтому мы можем записать a н =a с + Х *d
Получается, чтобы осуществить параллельный перенос по Х, мы должны умножить координаты на матрицу: Последняя строка определяет величину параллельного переноса: по Х на Х, по Y на 0, по Z на 0 (нули можно заменить соответственно на Y, и Z)
Заметим, что: То есть координаты были такими: После умножения на матрицу стали такими:
Произошло масштабирование: точка стала ближе или, наоборот, дальше от начала координат. Пример: допустим К=2
Заметим, также что: То есть координаты были такими: После умножения на матрицу стали такими:
Те точки, которые находились в плоскости YZ остаются на месте, а чем точки дальше от плоскости YZ, тем сильнее меняются ее координаты. Точка (1,1,1,1) после умножения на эту матрицу перейдет в точку т.е. точка приближается к началу координат, и ее приближение зависит от первой координаты: a=1, то приблизится в t+1 раз, если а=5, то в 5t+1 раз. Происходит искажение по всем координатам, квадрат, например, после такого приближения, становится больше похож на круг.
КОНЕЦ