Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
А.А. Шелестов - Компьютерная графика.doc
Скачиваний:
121
Добавлен:
10.05.2015
Размер:
6.48 Mб
Скачать

2.3.3 Изометрия, триметрия.

Для получения изометрической проекции ставится условие равного сокращения всех трех координатных осей.

Применяя преобразование, как описано выше, к единичному вектору, направленному по оси Z, получим

.

Мы имеем еще одну связь между углами Ф и

Или

(2.52)

Решая совместно эти уравнения, получим

(2.53)

Подставляя найденное значение в (2.52) получим или.

Пример изометрической проекции приведен на рис. 2.3.

Рис 2.3 – Изометрическая проекция куба

При триметрии длины единичных векторов, полученных в результате проекции:

- различны.

2.3.4 Косоугольные проекции

В косоугольных проекциях проектирующие прямые образуют с плоскостью проекции угол, отличный от 90. Различные типы косоугольных проекций характеризуются величиной этого угла. Выделяют два типа косоугольных проекций:

  • свободную проекцию (угол между проектирующими прямыми и плоскостью проекции равен 45)(см рис. 2.4);

Рис. 2.4 - Свободная проекция куба

  • кабинетную проекцию (частный случай свободной проекции, в котором масштаб по третьей оси уменьшен в два раза)(см рис.2.5).

Рис.2.5 – Кабинетная проекция куба

Рассмотрим проекцию на плоскость XOYи предположим, чтоиявляются составляющими косоугольной проекции единичного вектораzна эту плоскость, т.е. вектор [0 0 1 1] преобразуется в вектор [0 1]. Матрица такого преобразования имеет вид

Для свободной проекции .

Для кабинетной проекции .

2.3.5 Перспективные преобразования и проекции.

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

Перспективное преобразование в 3D-пространстве и параллельное проецирование.

Аффинные преобразования (повороты вокруг координатных осей, смещение, масштабирование, перенос) в 3D-пространстве и центральное (перспективное) проецирование.

Напомним, что перспективные преобразования (в т.ч. проецирование) отличаются от аффинных наличием ненулевых элементов 4-го столбца матрицы 44 .

Перспективная проекция на плоскость z=0обеспечивается преобразованием

т.е.

(2.54)

Геометрический смысл этого преобразования виден. Каждая точка (например, С) переводится в точкупутем центральной проекции, центр которой лежит на осиzв точке с координатами:

.

Из рассмотрения подобных треугольников ODHивидно, что

. (2.55)

Аналогично, из треугольников OCDи:

. (2.56)

При r=0перспективное преобразование вырождается в аксонометрическое.

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

С другой стороны, при проецировании на плоскость z=0информация о координатеzтеряется. Иногда это неудобно. В этом случае можно выполнить перспективное преобразование, например, матрицей:

а затем параллельное проецирование.

Видно, что полученное 3-х мерное изображение и проекция воспринимаются скошенными, что дает неверное визуальное представление об их глубине. Более реалистическая картина получится, если предварительно сместить куб влево по оси xи вниз по осиy.

Отметим еще одно интересное обстоятельство. Возьмем точку в бесконечности на оси zи выполним перспективное преобразование:

Поскольку параллельные линии исходного пространства "сходятся" в бесконечности, то в преобразованном пространстве линии, которые были параллельны оси z, будут сходиться в точке:

.

Эту точку называют точкой схода.

Аналогично, перспективное преобразование

(2.57)

будет приводить к точке схода .

Преобразование:

будет приводить к точке схода .

Преобразования, которые мы сейчас рассмотрели, являются одноточечными (имеют одну точку схода). Их еще называют параллельными перспективными преобразованиями. Пример такого преобразования приведен на рис. 2.6.

Рис. 2.6 – Центральная проекция куба

с одной точкой схода

Если в 4-м столбце матрицы 44 два элемента ненулевые, то получим двухточечную или угловую перспективу

Точки схода в данном случае расположены на оси х:и на осиу:.

Пример двухточечной перспективы приведен на рис. 2.7.

Рис. 2.7 – Центральная проекция домика с двумя точками схода x0иy0

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

Аналогично, получается трехточечная или косая перспектива:

Точки схода лежат на всех трех осях:

, ,.

При построении перспективных проекции для получения "правильных" (реалистических) изображений часто полезно выполнить ряд предварительных аффинных преобразований поворотов вокруг координатных осей и смещения. При этом может измениться вид перспективы.

Повернем единичный куб вокруг оси у на угол и сместим его к точке [l m n]. Затем построим одноточечную перспективную проекции с центром в точкеkна осиzна плоскостиz=1.

Матрица преобразования

дает двухточечную перспективу.

При этом линии, которые были параллельны оси у, остались параллельны, а линии, которые были параллельны осямxиz, сходятся в точкахна осих.

Трехточечная перспектива получается, если предварительно выполнено вращение вокруг двух координатных осей, например, на угол вокруг осиуи угол Ф вокруг осих.