Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


3-16 МЕТОДЫ СОЗДАНИЯ ПЕРСПЕКТИВНЫХ ВИДОВ

Предложенные в предыдущем разделе виды перспективной проекции были неинформативны, так как во всех случаях из каждого центра проекции была видна только одна грань куба. Для того чтобы наблюдатель воспринял трехмерную форму объекта на основании только одного вида, надо, чтобы были видны несколько граней этого объекта. Для простых объектов, подобных кубу, должны быть видны как минимум три грани. Вид с несколькими гранями можно получить из одноточечной перспективной проекции с фиксированным центром и с плоскостью проецирования, перпендикулярной направлению взгляда, если предварительно выполнен перенос и/или поворот объекта. Тогда получается реалистический вид, если только центр проекции не находится слишком близко к объекту.

179.jpg

Рис. 3-31 Трехточечная перспектива, (а) Исходный куб; (b) перспективная проекция на плоскость ; (с) искаженный куб.

Для начала рассмотрим простой перенос объекта с последующим одноточечным проецированием на плоскость  и с центром проекции в точке . Требуемое преобразование записывается в виде

,                     (3-59)

где .

180.jpg

Рис. 3-32 Одноточечная перспективная проекция с переносом в ,  направлениях.

Уравнение (3-59) вместе с рис. 3-32 показывает, что перенос в направлениях  и  открывает дополнительные грани объекта. Перенос в обоих этих направлениях необходим, чтобы открыть три грани простого кубообразного объекта. На рис. 3-32 показаны результаты переноса вдоль прямой  отцентрированного относительно начала координат куба и одноточечного проецирования на плоскость . Заметим, что для передней грани показываются истинные размер и форма.

Уравнение (3-59) также показывает, что перенос вдоль оси , т.е. к центру проекции или от него, приводит к явному изменению масштаба (из-за элемента ). Этот эффект соответствует физической реальности, так как объекты, находящиеся дальше от наблюдателя, выглядят более мелкими. Заметим, что при приближении центра проекции к бесконечности явление масштабирования исчезает. Этот эффект схематично показан на рис. 3-33. Как изображено на этом рисунке, объект может находиться с любой стороны от центра проекции. Если объект и плоскость проекции находятся по одну сторону от центра, то, как показано на рис. 3-33, получается прямое изображение. Если же объект и плоскость проекции лежат по разные стороны от центра, то получается перевернутое изображение.

181.jpg

Рис. 3-33 Эффект масштабирования при перемещениях вдоль оси  для одноточечной перспективной проекции.

На рис. 3-34 показаны результаты перемещения объекта во всех трех направлениях. Здесь куб перемещается вдоль трехмерной прямой от  к . Заметно очевидное увеличение размера, а также на всех видах заметно сохранение истинной формы, но не размера передней грани.

Эти идеи более подробно изложены в примере.

Пример 3-22 Одноточечная перспективная проекция с переносом

Рассмотрим отцентрированный относительно начала координат единичный куб со следующими координатными векторами

.

Переместим куб на 5 единиц в направлениях  и  и построим перспективную проекцию на плоскость  с центром проекции в .

            Из уравнения (3-59) получаем общую матрицу преобразования

.

182.jpg

Рис. 3-34 Одноточечная перспективная проекция, объединенная с переносами в , ,  направлениях.

Преобразованные координаты

.

Правый верхний объект на рис. 3-32 изображает этот результат.

Если исходный объект был перемещен на 5 единиц в направлениях , ,  и была построена одноточечная перспективная проекция на плоскость  с центром проекции в , тогда из (3-59) следует, что общая матрица преобразования записывается в виде

.

Отметим общее масштабирование, задаваемое значением 0.75 в правом нижнем элементе матрицы преобразования.

Преобразованные координаты равны

.

Результат показан в виде верхнего правого объекта на рис. 3-34.

Несколько граней также будет видно, если использовать вращение объекта. Один поворот откроет по крайней мере две грани объекта, тогда как два и более поворотов вокруг разных осей откроют, как минимум, три грани.

Матрица преобразования для поворота вокруг оси  на угол  и последующего одноточечного перспективного проецирования на плоскость  с центром проекции в :

.    (3-60)

Аналогичным образом матрица преобразования для поворота вокруг оси  на угол  и последующего одноточечного перспективного проецирования на плоскость  с центром проекции в точке  имеет вид:

. (3-61)

В обоих уравнениях (3-60) и (3-61) не равны нулю два отвечающих за перспективное преобразование (перспективных) элемента в четвертом столбце матрицы преобразования. Таким образом, один поворот вокруг главной оси, перпендикулярной той оси, на которой лежит центр проекции, эквивалентен двуточечному перспективному преобразованию. При повороте вокруг оси, на которой лежит центр проекции, такого эффекта нет. Заметим, что для одного поворота перспективный элемент для оси вращения остается неизменным, например, в уравнениях (3-60) и (3-61) элементы  и  соответственно равны нулю.

В общем случае вращение вокруг главной оси не открывает необходимого для адекватного трехмерного представления числа граней - как минимум, трех. Для этого оно должно быть скомбинировано с перемещением вдоль оси. Следующий пример иллюстрирует это.

Пример 3-23 Двуточечное перспективное проецирование с использованием поворота вокруг одной главной оси

Рассмотрим проекцию на плоскость  с центром в точке  куба с рис. 3-35а, повернутого вокруг оси  на угол , чтобы открылась левая грань, и перемещенного на  единицы вдоль , чтобы открылась верхняя грань.

Используя уравнение (3-38) с , уравнение (3-47) с  и уравнение (3-14) с ,  получим

.

Преобразованные координаты равны

.

Результат показан на рис. 3-35b. Искажение появляется из-за того, что центр проекции расположен слишком близко к кубу. Отметим схождение параллельных осям  и  прямых линий к точкам схода, лежащим на оси . Эти точки схода определяются в примере 3-25 из разд. 3-17.

185.jpg

Рис. 3-35 Двуточечная перспективная проекция с поворотом вокруг одной оси.

Аналогичным образом трехточечное перспективное преобразование выполняется с помощью вращения вокруг двух или более главных осей и последующего одноточечного перспективного преобразования. Например, поворот вокруг оси , потом поворот вокруг оси  и перспективное проецирование на плоскость  с центром проекции в точке  имеет следующую матрицу преобразования

.  (3-62)

Отметим три ненулевых перспективных элемента. Объект можно также переместить, если перемещение происходит после вращения, тогда результирующая матрица преобразования равна

.  (3-63)

Отметим здесь очевидный масштабирующий эффект перемещения вдоль . Результаты преобразования будут различными, если поменять порядок выполнения поворотов или перенос выполнять до вращения.

Пример 3-24 Трехточечная перспективная проекция с поворотом вокруг двух осей           

Рассмотрим куб на рис. 3-35a, повернутый вокруг оси  на угол , вокруг оси  на  и спроецированный на плоскость  с центром в точке .

Из уравнения (3-62)

.

Преобразованные координаты равны

.

Результат изображен на рис. 3-36.

 

187.jpg

Рис. 3-36 Трехточечная перспективная проекция с поворотом вокруг двух осей.

Из этих результатов становится ясно, что одно-, дву- или трехточечное перспективное преобразование можно сконструировать с помощью поворотов и переносов вокруг и вдоль главных осей с последующим одноточечным перспективным преобразованием с центром проекции, расположенным на одной из главных осей. Эти результаты также справедливы для поворота вокруг произвольной оси в пространстве. Следовательно, при использовании в графической системе парадигмы с фиксированным центром проекции и манипулируемым объектом, необходимо обеспечить только построение одноточечной перспективной проекции на плоскость  с центром проекции на оси .

 



<< ПредыдущаяОглавлениеСледующая >>