§2. Перспективные проекции
Аксонометрические проекции хорошо передают форму объекта в том случае, когда расстояние от него до наблюдателя значительно превосходит характерные размеры объекта. При таком удалении все его элементы искажаются примерно одинаково. Если же наблюдатель находится вблизи объекта, то это условие нарушается. Близкие и удалённые детали объекта искажаются с заметными различиями. В этом случае для большей реалистичности необходимо использовать перспективные проекции. У них, в отличие от аксонометрических, центр проекции занимает положение с конечными координатами по всем осям. Перспективными изображениями часто пользуются художники и архитекторы, так как эти изображения для близких объектов позволяют получить картину, близкую к реальной. В машинной графике данные проекции также используются для создания реалистических изображений.
Перспективное проецирование не является линейным преобразованием, поскольку коэффициенты искажения для отрезков, по разному удалённых от наблюдателя, будут раз-личными. Вследствие этого его невозможно выполнить пу-тем обычного однократного умножения однородных коор-динат точек на некоторую матрицу. На практике вначале исходные однородные координаты точек (x, y, z, 1) путем
138
матричного умножения переводят в специальные про-межуточные координаты (xп, yп, zп,Н), у которых четвёртая компонента не равна 1. Затем путем нормирования вектора промежуточных координат по четвертой компоненте полу-чают требуемые перспективные однородные координаты точек (x*, y*, z*,1).
Рассмотрим для примера положение центра проецирова-ния Op на оси z в точке с координатами (0,0,-k). Допустим, плоскостью проецирования является плоскость z=0. Выяс-ним для произвольной точки P = (x, y, z), какие координа-ты будет иметь её изображение - точка P* = (x*, y*, z*=0) на плоскости проецирования (Рис.7.2). Рассматривая подоб-ные треугольники ОPOC , ОPAВ и учитывая, что OC =x* , AB = x , получим: ОPO : ОPA =OC : AB; k : (z+k) =x* : x . Отсюда следует: x* = x/(z/k+1) . Рассматривая аналогичные подобные треугольники ОPСР* , ОPВР с учётом ВР = у , СР* = у* , получим такое же выражение для проекции координат по оси у : у* = у/(z/k+1).
Рис.7.2
139
Введем для упрощения записи выражений величину r=1/k. Данное преобразование можно представить в виде последо-вательного выполнения двух.
1. Определение промежуточных координат точек в проективной проекции на плоскость z=0 путём умножения исходных однородных координат на матрицу:
xn 1 0 0 0 x x
yn = 0 1 0 0 * y = y
zn 0 0 0 0 z 0
H 0 0 r 1 1 r* z+1
(7.9)
2. Деление всех промежуточных координат точек на ве-личину H –четвертую неединичную компоненту промежу-точных координат. В итоге получаются искомые перспек-тивные однородные координаты:
x* =xn /H =x/(r* z+1), y* =yn /H = y/(r* z+1), z* =0. (7.10)
Из (7.10) видно, что в рассмотренном примере преобра-зование координат x, y зависит от того, какое положение точка занимает по оси z. Следовательно, в отличие от аксо-нометрических проекций, у перспективных преобразова-ний изменения координат не являются одинаковыми для всех точек наблюдаемого объекта.
Плоская проекция не всегда удобна, так как линии, пер-пендикулярные плоскости z=0, вырождаются в точки. Для практики больший интерес представляет пространственное перспективное преобразование вида
xn 1 0 0 0 x x
yn = 0 1 0 0 * y = y
zn 0 0 1 0 z z
H 0 0 r 1 1 r* z+1
(7.11)
с однородными координатами
140
(x*,y*,z*,1) = (xn /(r* z+1), yn /(r* z+1), zn /(r* z+1),1) (7.12).
Начало системы координат (0, 0, 0, 1)снова остается не-изменным, а бесконечно удаленная по осиzточка(0, 0, 1, 0)преобразуется в точку[xn , yn , zn , H] = [0, 0, 1, r]с однородными координатами(x*, y*, z*, 1) = (0, 0, 1/r, 1) на осиz*.Это означает, что положительная полуплоскость(0 ≤ z ≤ ∞)проецируется в ограниченную область(0 ≤ z* ≤ 1/r).Кроме того, линии, которые первоначально были парал-лельны оси, теперь будутпроходить через точку VP = [0, 0, 1/r, 1].Эту точку называют точкой схода перс-пективного преобразования. Плоскость z = 0являетсяпроекционной плоскостью, при этом центр проекцииОР находится на той же самой оси, что и точка схода, на одинаковом расстоянии от противоположной стороны нулевой плоскости. Это иллюстрирует Рис.7.3. Рассмотрим произвольную точкуА=(x,y,z).Координаты ортогональной(A**),плоской(A*)и пространственной(B*)перспективных проекций этой точки будут следующими:
A** =(x,y,0), A*=(x,y,0)/(r* z+1), B*=(x,y,z)/(r* z+1).
Длины отрезков ОА*,ОА**иА*А**можно выразить через координаты исходной точкиА:
Из подобия треугольников ОА**VP иА*А**В* следует справедливость пропорцииОА**/A*A** = OVp/A*B*. Отсюда получим:OVp= A*B* ОА**/A*A** = OVp = 1/r. Постоянное положение точки сходаVp следует из произвольности выбранной точкиА.
141
z
А
у
VP B*
1/r
О А* А**
-1/r
OP x
Рис.7.3.
Аналогично, перспективное преобразование
xn 1 0 0 0 x x
yn = 0 1 0 0 * y = y
zn 0 0 1 0 z z
H 0 q 0 1 1 qy+1
(7.13)
с однородными координатами
142
(x*, y*, z*,1) = ( xn /(q* y+1), yn /(q* y+1), zn /(q* y+1), 1)(7.14)
будет приводить к точке схода на оси ycкоординатами(0, 1/q, 0, 1).
Перспективное преобразование
xn 1 0 0 0 x x
yn = 0 0 1 0 * y = y
zn 0 1 0 0 z z
H p 0 0 1 1 px+1
(7.15)
с однородными координатами
(x*,y*,z*,1) = (xn /(p* x+1),yn /(p* x+1),zn /(p* x+1),1)(7.16)
приводит к точке схода на оси xс координатами(1/p, 0, 0, 1).
Преобразования, заданные уравнениями (7.11)-(7.16) на-зывают одноточечнымиперспективными преобразова-ниями.
Если два элемента в четвертой строке преобразования матрицы являются ненулевыми, то получается двухто-чечнаяилиугловаяперспектива.
Двухточечное перспективное преобразование
xn1 0 0 0 x x
yn = 0 1 0 0 * y = y
zn 0 0 1 0 z z
H p q 0 1 1 px+qy+1
(7.17)
с однородными координатами
(x*,y*,z*,1)=(xn /(p*x+q*y+1),yn/(p*x+q*y+1),zn /(p* x+q* y+1),1)
(7.18)
приводит к двум точкам схода: одна расположена на оси x, в точке с координатами(1/p, 0, 0, 1), а другая – на осиy, в точке с координатами(0, 1/q, 0, 1).
Двухточеченые преобразования с точками схода по осям
143
х,zи y, zстроятся аналогично.
Если все три первых элемента 4-ой строки матрицы преобразования ненулевые, то получается трехточечная, иликосаяперспектива.
Трехточечное преобразование cматрицей
1 0 0 0
0 1 0 0
0 0 1 0 (7.19)
p q r 1
с однородными координатами
(x*, y*, z*,1) = (xn /(p* x+q* y+r* z), yn /(p* x+q* y+r* z), zn /(p* x+q* y+r* z), 1) (7.20)
приводит к трем точкам схода: одна на оси xс коор-динатами(1/p ,0, 0, 1), другая на осиy с координатами(0, 1/q, 0, 1) и третья на осиzв точке с координатами(0, 0, 1/r, 1).Трехточечное перспективное изображение единичного куба , у которого начало совпадает с началом системы координат, а оси ориентированы по осям координат, показано на Рис.7.4.
При практическом построении перспективных проекций первое матричное преобразование может быть опущено, поскольку оно фактически не изменяет координат точек, а только формирует нормирующий делитель. Поэтому для перехода к проекции достаточно для каждой точки сразу выполнить нормирование исходных координат. Все перспективные преобразования могут быть представлены как частные случаи трёхточечного при нулевых значениях соответствующих коэффициентов по осям.
Функция Persp на языкеAutolisp, строящая трёхточеченое проективное изображение произвольного объекта, приведена в Приложении.
144
Рис.7.4.
При визуализации объектов наряду с проецированием форма крупных объектов дополнительно характеризуется различной яркостью деталей, имеющих разную глубину (расстояние от наблюдателя) – близкие детали должны быть более яркими, удалённые – менее яркими. При этом на не-котором предельном удалении детали отсекаются – вообще не выводятся на экран. Также форма сложных объектов хо-рошо иллюстрируется при помощи задания объекту перемещений (вращательных, поступательных, сложных) относительно наблюдателя. При этом лучше видны связи между деталями, различная скорость перемещения допол-нительно характеризует их удалённость относительно наблюдателя.
145
- Глава 1. Основные виды геометрических объектов
- §1. Основные аналитические способы задания кривых
- §2. Виды кривых
- §3. Основные способы задания прямых
- §4. Способы задания окружностей и их дуг
- §6. Виды поверхностей
- Пример 2.Уравнение конуса второй степени
- §7. Основные способы задания плоскостей
- §8. Аналитические способы задания пространственных тел
- Глава 2. Интерполяция кривых и поверхностей алгебраическими полиномами
- §1. Основные способы моделирования кривых. Интерполяция и аппроксимация
- §2. Интерполирование кривых с помощью алгебраических полиномов канонического вида
- §3. Интерполирование по однократным узлам. Интерполяционные многочлены Лагранжа и Ньютона
- §4. Интерполирование по двукратным узлам. Интерполяционные многочлены Эрмита
- §5. Интерполирование поверхностей
- 5.1. Интерполирование по однократным узлам. Билинейные поверхности
- 5.2. Интерполирование по двукратным узлам
- Глава 3. Моделирование кривых и поверхностей при помощи сплайнов
- I. Построение локальных сплайнов.
- II. Построение интерполяционных сплайнов.
- §1. Интерполирование кривых и поверхностей с помощью локальных сплайнов
- 1.1 Построение сплайнов по однократным узлам
- 1.2 Интерполирование по двукратным узлам
- §2. Построение интерполяционных сплайнов.
- 2.2. Кубические интерполяционные сплайны
- §3. Интерполяция с помощью в-сплайнов
- Глава 4. Интерполирование поверхностей по линиям
- §1.Интерполирование по кривым (линейчатые или плазовые поверхности)
- §2. Линейные поверхности Кунса
- §3. Обобщенные поверхности Кунса
- Глава 5. Аппроксимация алгебраическими полиномами
- §1. Аппроксимация по методу наименьших квадратов
- §2. Аппроксимация алгебраическими многочленами по критерию наилучшего равномерного приближения
- § 3. Аппроксимация при помощи кривых и поверхностей Безье
- Глава 6. Модели объектов. Плоские и пространственные линейные преобразования
- §1. Модели (структуры данных) графических объектов
- §2. Задание плоских и пространственных линейных преобразований при помощи уравнений связи
- § 3. Однородные координаты. Матричные представления линейных преобразований
- Задачи. Записать прямые и обратные матрицы элемен-тарных преобразований, при помощи которых можно осу-ществить следующие действия:
- § 4. Составные линейные преобразования
- § 5. Линейные преобразования каркасных моделей
- Глава 7.Проективные изображения трехмерных объектов
- §1. Аксонометрические проекции
- 1.1.Ортогональные проекции
- 1.2 Диметрические проекции
- Куб Диметрическая проекция
- 1. 3. Изометрическая проекция
- §2. Перспективные проекции
- §3. Построение проективных векторных изображений трёхмерных объектов
- Глава 8. Графические базы данных (гбд)
- §1. Структура и схема функционирования типовых гбд
- §2. Постановка задачи проектирования гбд в графической системе AutoCad
- Точки привязки
- §3. Разработка структуры гбд
- §4. Пакетные файлы гбд
- §5. Параметрические функции гбд
- §6. Создание библиотек слайдов гбд
- §7. Модификация основного меню AutoCad 2000
- 7.1. Файл меню. Его разделы. Управляющие символы
- 7.2. Модификация всплывающего и падающего меню AutoCad2000
- 7.3. Модификация экранного меню AutoCad2000
- 7.4. Модификация графического меню AutoCad2000
- §8. Использование разработанной базы данных
- Глава 9. Создание реалистических изображений
- § 1. Пространственные модели
- §2. Геометрическое моделирование объектов сложной формы
- § 3. Текстуры
- § 4. Основные операции при построении реалистических изображений
- § 5. Моделирование источников освещения и расчёт освещённости малых участков поверхности объектов
- § 6. Моделирование отражающих свойств поверхностей
- § 7. Моделирование отражения от поверхности (затенение)
- § 8. Удаление невидимых граней. Расчёт теней
- §9. Создание стереоскопического эффекта
- §10. Анимация
- Порядок выполнения и примерные темы курсовых работ
- Литература