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

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


3-15 ПЕРСПЕКТИВНЫЕ ПРЕОБРАЗОВАНИЯ

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

Одноточечное перспективное преобразование задается равенством

.   (3-45)

Здесь . Обычные координаты получаются делением на :

.      (3-46)

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

      (3-47)

и

.   (3-48)

Обычные координаты равны

. (3-49)

Чтобы показать, что равенство (3-47) выполняет перспективное проецирование на плоскость , рассмотрим рис. 3-26 с геометрическими построениями для перспективной проекции трехмерной точки  на плоскость  в точку  и с центром проекции, лежащим в  на оси .

167.jpg

Рис. 3-26 Перспективная проекция точки.

Координаты точки проекции  можно получить, используя подобие треугольников. Из рис. 3-26 следует:

или

и

или

?

 равно, конечно, нулю.

Полагая , получим результаты, аналогичные полученным с помощью (3-47). Таким образом, уравнение (3-47) осуществляет перспективное проецирование на плоскость  с центром проекции в точке  на оси . Заметим, что при приближении  к бесконечности,  приближается к нулю и в результате получаем аксонометрическую проекцию на плоскость .

168.jpg

Рис. 3-27 Проекция прямой, параллельной оси .

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

Чтобы лучше понять действие перспективного преобразования, рассмотрим рис. 3-27. На нем показано перспективное проецирование на плоскость  отрезка , параллельного оси , в отрезок  на плоскости  с центром проекции, расположенным в точке  на оси . Преобразование можно разделить на два этапа (см. (3-47)). На первом этапе отрезок  отображается в отрезок  (см. рис. 3-27). Затем с помощью ортографического проецирования отрезок  в трехмерном пространстве отображается в отрезок  на плоскости . Центр проекции расположен в бесконечности.

Исследование рис. 3-27 показывает, что прямые  и  пересекают плоскость  в одной и той же точке. Прямая  также пересекает ось  в точке . Далее, перспективное преобразование (см. (3-45) и (3-46)) отображает расположенную в бесконечности точку пересечения параллельных прямых  и оси  в конечную точку  на оси . Эта точка называется точкой схода. Заметим, что точка схода лежит на том же расстоянии от плоскости проекции, что и центр проекции, только с противоположной стороны от плоскости, например, если  есть плоскость проекции, а центр проекции находится в , тогда точка схода находится в .

Чтобы подтвердить это наблюдение, рассмотрим перспективное преобразование точки, находящейся в бесконечности на оси , т.е.

.        (3-50)

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

Прежде чем перейти к примерам, для полноты изложения укажем одноточечные перспективные преобразования с центром проекции и точкой схода, расположенными на осях  и . Одноточечное перспективное преобразование

          (3-51)

с обычными координатами

    (3-52)

имеет центр проекции  и точку схода, расположенную на оси  в .

Одноточечное перспективное преобразование

           (3-53)

с обычными координатами

     (3-54)

имеет центр проекции  и точку схода, расположенную на оси  в .

Пример 3-17 Перспективное преобразование прямой, параллельной оси

Рассмотрим отрезок  на рис. 3-27, параллельный оси , с концевыми точками  и . Выполним перспективное проецирование на плоскость  с центром проекции в точке . Перспективное преобразование  в  при  равно

.

Параметрическое уравнение отрезка

, ,

или .

Пересечение этого отрезка с плоскостями ,  и  дает

.

Подставив значение  в параметрическое уравнение отрезка , получим

,

что является пересечением отрезка  с осью  в точке , точке схода. Теперь подстановка в уравнения для - и -компонент значения  дает пересечение с плоскостью , т.е.

,

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

.

Ниже приводится пример с простым кубом.

  Пример 3-18 Одноточечное перспективное преобразование куба

Выполним перспективное проецирование на плоскость  единичного куба, изображенного на рис. 3-28а, с центром проекции в точке  на оси .

Одноточечный перспективный множитель  равен

.

171.jpg

Рис. 3-28 Одноточечная перспективная проекция единичного куба.

Из уравнения (3-48) получаем, что

,

.

Результат изображен на рис. 3-28b. Отметим, что, поскольку центр проекции находится на положительной оси , проекция передней грани  куба больше проекции задней грани. Почему так происходит, показано на рис. 3-28с, на котором изображена параллельная проекция исходного куба на плоскость .

            Отметим также, что, поскольку точка схода лежит на оси , прямая  на рис. 3-28b проходит через начало координат.

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

.

Результат, полученный с помощью косоугольной проекции показан на рис. 3-28d. Заметим, что «передняя» грань  больше, чем «зaдняя» грань . Последующее ортографическое проецирование на плоскость  дает тот же самый результат , что был получен ранее и который изображен на рис. 3-28с.

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

Рис. 3-28b не передает трехмерности куба. Как показано в следующем примере, более удовлетворительный результат можно получить центрированием куба.

Пример 3-19 Одноточечное перспективное преобразование центрированного куба

Изображенный на рис. 3-28a куб может быть центрирован на оси  путем его переноса на  вдоль направлений  и . Результирующее преобразование

.

Сдвинутый куб изображен на рис. 3-29а.

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

.

Результат изображен на рис. 3-29b. Заметим, что ранее параллельные оси  прямые, соединяющие углы передней и задней граней, теперь сходятся к оси  .

174.jpg

Рис. 3-29 Одноточечная перспективная проекция центрированного единичного куба.

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

Если в четвертом столбце -матрицы преобразования два элемента из первых трех не равны нулю, то такое преобразование называется двуточечным перспективным преобразованием. Двуточечное перспективное преобразование

   (3-55)

с обычными координатами

     (3-56)

имеет два центра проекции: первый на оси  в точке  и второй на оси  в точке , и две точки схода: на оси  в точке  и на оси  в точке . Заметим, что заданное уравнением (3-55) двуточечное преобразование можно получить объединением двух одноточечных. Конкретнее,

,

где  задается уравнением (3-55),  - уравнением (3-53) и  - уравнением (3-51). Более подробно двуточечная перспективная проекция рассмотрена в следующем примере.

Пример 3-20 Двуточечные перспективные преобразования

Снова рассмотрим куб, описанный в примере 3-18. Построим двуточечную перспективную проекцию этого куба на плоскость  для центров проекции, находящихся в точках  и . Нужное преобразование получим путем объединения (3-55) и (3-27). А именно,

.

Здесь  и  равны

, .

Преобразованные координаты куба имеют вид:

.

Результаты изображены на рис. 3-30а. Две точки схода находятся в  и .

176.jpg

Рис. 3-30 Двуточечные перспективные проекции, (а) Нецентрированного куба; (b) центрированного куба

Центрирование куба на оси  с помощью переноса вдоль  и  на , аналогичное проделанному в примере 3-18, приведет к следующей общей матрице преобразования

,

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

.

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

И снова полученное изображение не дает адекватного восприятия трехмерной формы объекта. Поэтому обратимся к трехточечным перспективным преобразованиям.

Трехточечная перспектива получается, если не равны нулю три первых элемента четвертого столбца -матрицы преобразования. Это трехточечное перспективное преобразование

    (3-57)

с обычными координатами

                    (3-58)

имеет три центра проекции: на оси  в точке , на оси  в  и на оси  в , а также три точки схода: на оси  в , на оси  в  и на оси  в .

Снова заметим, что трехточечное перспективное преобразование, заданное равенством (3-57), может быть получено конкатенацией трех одноточечных перспективных преобразований, по одному на каждую координатную ось. Создание трехточечной перспективы иллюстрируется на следующем примере.

Пример 3-21 Трехточечное перспективное преобразование         

Для описанного в примере 3-18 куба рассмотрим проекцию на плоскость  после применения трехточечного перспективного преобразования. Центры проекции находятся в точках  и . Точки схода находятся в ,  и . Матрица преобразования равна

.

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

.

Результат показан на рис. 3-31b. Искаженный в результате перспективного преобразования объект изображен на рис. 3-31с. Отметим, что ребра на рисунке сходятся.

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

 



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