Конспект лекций по компьютерной графике. Конспект лекций по дисциплине Компьютерная графика
![]()
|
2.2 ПроекцииПри использовании любых графических устройств обычно используют проекции. Проекция задает способ отображения объектов на графическом устройстве. Мы будем рассматривать только проекции на плоскость. Проецирование - отображение точек, заданных в системе координат с размерностью N, в точки в системе меньшей размерности. Проекторы (проецирующие лучи) - отрезки прямых, идущие из центра проекции через каждую точку объекта до пересечения с плоскостью проекции (картинной плоскостью). 2.2.1 Мировые и экранные координатыПри отображении пространственных объектов на экране или на листе бумаги с помощью принтера необходимо знать координаты объектов. Мы рассмотрим две системы координат. Первая — мировые координаты, которые описывают истинное положение объектов в пространстве с заданной точностью. Вторая — система координат устройства отображения, в котором осуществляется вывод изображения объектов в заданной проекции. Назовем систему координат графического устройства экранными координатами (хотя это устройство и не обязательно должно быть подобно монитору компьютера). Пусть мировые координаты будут трехмерными прямоугольными координатами. Где должен размещаться центр координат, и какими будут единицы измерения вдоль каждой оси, для нас сейчас не очень важно. Важно то, что для отображения мы будем знать любые числовые значения координат отображаемых объектов. Для получения изображения в определенной проекции необходимо вычислить координаты проекции. Для синтеза изображения на плоскости экрана или бумаге используем двумерную систему координат. Основная задача — задать преобразования координат из мировых в экранные. 2.2.2 Основные типы проекцийИзображение объектов на плоскости (экране дисплея) связано с геометрической операцией проектированием. В компьютерной графике используется несколько видов проектирования, но основных - два вида: параллельное и центральное. П ![]() Рис. 2.14. Основные типы проекций При центральном проектировании все прямые исходят из одной точки. При параллельном - считается, что центр лучей (прямых) бесконечно удален, а прямые параллельны. Каждый из этих основных классов разбивается еще на несколько подклассов в зависимости от взаимного расположения картинной плоскости и координатных осей.
Рис. 2.15. Классификация плоских проекций У параллельных проекций центр проекции расположен в бесконечности от плоскости проекции:
У центральных проекций центр проекции находится на конечном расстоянии от плоскости проекции. Имеют место так называемые перспективные искажения. Ортогональные проекции (основные виды) ![]() Рис. 2.16. Ортогональные проекции
Матрица ортогональной проекции на плоскость YZ вдоль оси Х имеет вид: ![]() Если же плоскость параллельна, то эту матрицу надо умножить на матрицу сдвига, тогда: ![]() Для плоскости ZX вдоль оси Y ![]() Для плоскости XY вдоль оси Z: ![]() При аксонометрической проекции проектирующие прямые перпендикулярны плоскости картинки. Изометрия - все три угла между нормалью картинки и координатными осями равны. Диметрия - два угла между нормалью картинки и координатными осями равны. Триметрия - нормальный вектор плоскости картинки образует с координатными осями различные углы. Каждый из трех видов этих проекций получается комбинацией поворотов, за которой следует параллельное проектирование. ![]() При повороте на угол β относительно оси У (ординат), на угол α вокруг оси Х (абсцисс) и последующем проектировании оси Z (аппликат) возникает матрица Изометрическая проекция ![]() Рис. 2.17. Изометрические проекции Диметрическая проекция ![]() Рис. 2.18. Диметрические проекции Косоугольные проекции Классический пример параллельной косоугольной проекции — кабинетная проекция (рис. 2. 26). Эта проекция часто используется в математической литературе для черчения объемных форм. Ось у изображается наклоненной под углом 45 градусов. Вдоль оси у масштаб 0. 5, вдоль других осей — масштаб 1. Запишем формулы вычисления координат плоскости проецирования Здесь, как и раньше, ось Υпрнаправлена вниз. ![]() Д ![]() Рис. 2.19. Косоугольные проекции Теперь относительно центральной проекции. Поскольку для нее лучи проецирования не параллельны, то будем считать нормальной такую центральную проекцию, главная ось которой перпендикулярна плоскости п ![]() Рассмотрим пример центральной косоугольной проекции, которая показывает параллельными линиями все вертикальные линии изображаемых объектов. Расположим плоскость проецирования вертикально, ракурс показа зададим углами а, β и положением точки схода (рис. 2. 21). ![]() Рис.2.20. Кабинетная проекция Рис. 2.21. Вертикальная центральная косоугольная проекция: а – расположение плоскости проецирования, б – вид с левого торца плокости проецирования Будем считать, что ось Ζвидовых координат располагается перпендикулярно плоскости проецирования. Центр видовых координат — в точке (хс, ус, zc). Запишем соответствующее видовое преобразование: ![]() Как и для нормальной центральной проекции, точка схода лучей проецирования располагается на оси Ζ на расстоянии Ζkот центра видовых координат. Необходимо учесть наклон главной оси косоугольной проекции. Для этого достаточно отнять от Υпрдлину отрезка 0-0' (рис. 2.21). Эта длина равняется (Ζk- Ζпл) ctgβ. Теперь запишем результат — формулы вычисления координат косоугольной вертикальной проекции ![]() где Пх и Пу — это функции проецирования для нормальной проекции. Следует отметить, что для такой проекции нельзя сделать вид сверху (β = 0), поскольку здесь сtgP = ∞. Свойство рассмотренной вертикальной косоугольной проекции, заключающееся в сохранении параллельности вертикальных линий, иногда полезно, например, при изображении домов в архитектурных компьютерных системах. Сравните рис. 2. 22 (верх) и рис. 2.22 (низ). На нижнем рисунке вертикали изображаются вертикалями — дома не "разваливаются". ![]() Рис. 2.21. Сравнение проекций Кабинетная проекция (аксонометрическая косоугольная фронтальная диметрическая проекция) Рис. 2.23.Кабинетная проекция ![]() Свободная проекция (аксонометрическая косоугольная горизонтальная изометрическая проекция) ![]() Рис. 2.24.Свободная проекция Центральная проекция Центральные проекции параллельных прямых, не параллельных плоскости проекции, сходятся в точке схода. В зависимости от числа координатных осей, которые пересекает плоскость проекции, различаются одно, двух и трехточечные центральные проекции. ![]() Рис. 2.25. Центральная проекция Рассмотрим пример перспективной (центрально) проекции для вертикального расположения камеры, когда α = β = 0. Такую проекцию можно себе представить как изображение на стекле, через которое смотрит наблюдатель, расположенный сверху в точке (х, у, z) = (0, 0, zk). Здесь плоскость проецирования параллельна плоскости (х 0 у), как показано на рис. 2. 26. Для произвольной точки пространства (Р), исходя из подобия треугольников, запишем такие пропорции: Xпр/(zk – zпл) = x/(zk – z) Yпр /(zk – zпл) = y/(zk – z) Найдем координаты проекции, учитывая также координату Ζпр: ![]() Запишем такие преобразования координат в функциональном виде ![]() где Π — функция перспективного преобразования координат. ![]() Рис. 2.26.Перпективная проекция В матричной форме преобразования координат можно записать так: ![]() Обратите внимание на то, что здесь коэффициенты матрицы зависят от координаты z (в знаменателе дроби). Это означает, что преобразование координат — нелинейное (а точнее, дробно-линейное), оно относится к классу проективных преобразований. Мы получили формулы вычисления координат проекции для случая, когда точка схода лучей находится на оси z. Теперь рассмотрим общий случай. Введем видовую систему координат {X, Υ, Ζ), произвольно расположенную в трехмерном пространстве (х, у, z). Пусть точка схода находится на оси Ζ видовой системы координат, а направление обзора — вдоль оси Ζ противоположно ее направлению. Будем считать, что преобразование в видовые координаты описывается трехмерным аффинным преобразованием ![]() После вычисления координат (X, Y, Z) можно вычислить координаты в плоскости проецирования в соответствии с формулами, уже рассмотренными нами ранее. Поскольку точка схода находится на оси Ζ видовых координат, то ![]() Последовательность преобразования координат можно описать так: ![]() Такое преобразование координат позволяет моделировать расположения камеры в любой точке пространства и отображать в центре плоскости проецирования любые объекты обзора. ![]() Рис. 2.27. Центральная проекция точки P0 в плоскость Z = d |