Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ALL

.pdf
Скачиваний:
223
Добавлен:
12.02.2018
Размер:
15.74 Mб
Скачать

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

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

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

 

проекции в z = zc:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin

 

cos

 

sin

0 1

 

 

 

 

 

cos

0

0

 

 

 

 

 

 

 

0

0

0

0

 

 

 

zc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

0

0 0 1

0

0

 

 

0

1

0

 

 

0

 

 

 

 

T Ry Prz sin

 

0

cos

0 0

0

0

1 z

 

 

 

 

 

 

 

 

cos

 

 

 

 

 

 

 

 

 

 

 

 

c

 

sin

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

0

0

1 0

0

0

1

 

 

 

 

 

 

 

 

z

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

sin

 

 

1

0

0

0

 

1

0

0

0

 

 

cos

0

 

 

 

 

 

 

cos

sin

 

0

 

 

 

 

 

 

 

 

 

 

zc

 

 

 

T Rx Prz

0

0

1

0

0

 

 

 

 

 

 

 

0

sin

cos

0

0

0

0

1 z

 

 

 

 

 

 

cos

 

 

 

0

0

0

1

 

 

 

1

c

 

0

sin

0

 

 

 

 

 

 

 

 

 

 

 

zc

 

 

 

 

 

 

 

 

0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

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

В обоих уравнениях не равны нулю два отвечающих за перспективное преобразование (перспективных) элемента в четвертом столбце матрицы преобразования.

Так, один поворот вокруг главной оси, перпендикулярной оси, на которой лежит центр проекции, эквивалентен двуточечному перспективному преобразованию.

При повороте вокруг оси, на которой лежит центр проекции, такого эффекта нет. Заметим, что для одного поворота перспективный элемент для оси вращения остается неизменным, например, в уравнениях элементы q и р соответственно равны нулю.

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

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

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

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

Например, поворот вокруг оси у, потом поворот вокруг оси х и перспективное проецирование на плоскость z = 0 с центром проекции в точке z = zc имеет

следующую матрицу преобразования

cos

0

sin

0 1

0

0

0

 

1

0

0

0

 

 

 

 

 

 

 

 

0

 

cos

sin

 

0

 

 

 

 

 

 

0

 

1

0

0

0

1

0

0

 

 

T Ry Rx Prz sin

 

0

cos

0

0

sin

cos

0

0

0

0

1 z

c

 

 

 

0

 

0

0

 

0

0

0

1

 

 

0

1

 

 

 

 

1

 

 

 

 

 

0 0

 

 

 

 

 

 

 

sin sin

 

 

3 ненулевых перспективных элемента. Объект можно

cos

sin sin

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

zc

 

 

также переместить, если перемещение за

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

cos

0

 

 

 

 

вращением, тогда результирующая матрица равна

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

zc

 

 

 

 

 

 

 

 

sin cos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos cos

 

cos

sin sin

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin

cos sin

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

zc

 

 

 

 

zc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos

 

 

 

 

sin

 

 

 

0

0

0

 

1

 

 

 

 

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T Ry Rx Tr Prz

 

 

 

 

 

 

 

zc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cos cos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Очевидный масштабирующий эффект перемещения

sin

cos sin

0

 

 

 

 

 

 

 

 

 

zc

 

 

 

 

 

 

 

 

 

 

вдоль z. Результаты преобразования будут

 

l

m

0

 

 

1

n

 

 

 

 

 

 

zc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

различными, если поменять порядок выполнения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

поворотов или перенос выполнять до вращения.

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

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

•Эти результаты также справедливы для поворота вокруг произвольной оси в пространстве.

•Следовательно, при использовании в графической системе парадигмы с фиксированным центром проекции и манипулируемым объектом, необходимо обеспечить только построение одноточечной перспективной проекции на плоскость z = 0 с центром проекции на оси z.

ТОЧКИ СХОДА

Как показано на рис. 9 a при построении перспективного вида объекта используется линия горизонта, расположенная обычно на уровне глаз. Главные точки схода — это те точки на линии горизонта, в которые сходятся прямые, параллельные в исходном пространстве главным осям.

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

Для плоскостей объекта, расположенных наклонно относительно исходных главных осей, точки схода лежат выше или ниже линии горизонта. Как показано на рис. 9 c, такие точки часто называются следом точек.

рис. 9

ТОЧКИ СХОДА

Представляют интерес два метода определения точек схода.

1.В первом просто вычисляется точка пересечения пары преобразованных спроецированных параллельных прямых.

2.Второй метод сложен, но зато дает более точные результаты.

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

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

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

Полученные в результате этого обычные координаты есть главные точки схода для этого объекта.

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

Пример 1

Главные точки схода, определяемые по пересечению прямых

Из примера 3-23 преобразованные координатные векторы для пары отрезков, один из которых проходит через точку А (см. рис. 3-35 а), и первоначально

параллельных соответственно осям х и z, равны

 

 

 

 

 

1.25

 

 

 

 

 

 

 

 

 

 

 

4

 

1.083

0

1

 

1.192

0.872

0

1

 

3

 

 

3

1.192

0.872

0

1

 

0.371

0.743

0

1

7

 

8

 

0

1

0

1

и

1.083

1.25

0

1

 

4

 

 

 

7

 

0.371

0.743

0

1

 

0

1

0

1

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Здесь цифры в скобках относятся к строкам исходной и преобразованной матриц.

Уравнения пары прямых, параллельных в исходном пространстве оси х :

y = 3.468x – 5.006,

у = 0.693x – 1.

Решение этой системы дает точку схода [VPx] = [1.444 0].

Уравнения пары прямых, параллельных

в исходном пространстве оси z, имеют вид:

у = – 0.157x – 0.685 .

у = – 0.231x – 1.

Решение дает точку схода [VPz] = [– 4.333 0].

Пример 2

Во втором примере для нахождения точек схода используется преобразование расположенных в бесконечности точек на главных осях.

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

Общая матрица преобразования

 

 

0.354

 

 

 

T

0.866

0

0.141

0

0.707

0

0.283

 

0.5

0.612

0

0.245

 

0

0

0

1

 

 

 

 

 

 

 

Преобразование расположенных в бесконечности на осях х, у и z точек дает

 

1

0

0

0 0.866

0.354

0

0.141

0.866

0.354

0

0.141

 

VP T 0

1

0

0

0

0.707

0

0.283

 

0

0.707

0

0.283

0

0

1

0

0.5

0.612

0

0.245

 

0.5

0.612

1

0.245

 

 

 

 

 

0

0

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эти точки схода показаны на рис..

Пример 3

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

Следы точек, полученные с помощью преобразования

Рассмотрим простую треугольную призму на рис..

Координатные векторы призмы

 

 

 

 

 

 

 

 

0

0

1

1

 

 

1

0

1

1

 

X 0.5

0.5

1

1

 

0

0

0

1

 

1

0

0

1

 

 

 

 

0.5

0

 

 

0.5

1

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5

0.612

 

 

 

 

 

 

 

0

0

1

1

 

 

 

 

 

 

 

0

0.755

 

 

 

 

 

 

 

 

 

0.354

 

 

 

0.966

 

 

 

 

 

 

1

0

1

1

 

0.866

0

0.141

 

0.366

0

0.614

 

 

X * X T 0.5

0.5

1

1

 

0

0.707

0

0.283

0.067

0.436

0

0.543

 

 

 

 

0

0

0

1

 

0.5

0.612

0

0.245

 

0

0

0

1

 

 

 

 

 

1

0

0

1

 

0

0

0

1

 

 

0.866

0.354

0

0.859

 

 

 

 

 

0.5

0

 

 

 

 

 

 

 

 

0.433

0.177

0

 

 

 

 

 

0.5

1

 

 

 

 

 

 

 

0.788

 

0.662

0.811

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.596

1.574

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.123

0.802

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.009

0.412

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.55

0.224

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример 3

• Преобразованная призма.

• Направляющие косинусы наклонных ребер левой верхней плоскости призмы до преобразования равны [0.5 0.5 0]. Точка, лежащая в бесконечности в этом направлении, имеет однородные координаты [1 10 0].

Аналогично [—0.5 0.5 0] — направляющие косинусы наклонных ребер правой верхней

плоскости призмы до преобразования. Точка, лежащая в бесконечности в этом направлении, имеет координаты [—1 1 0 0].

Применяя преобразование к только что полученным точкам и к точкам, лежащим в

бесконечности на главных осях, получим

 

 

 

 

 

Рис. Следы точек.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

0

0

0.866

0.354

0

0.141

 

0.866

0.354

0

0.141

 

 

0

1

0

0

 

0

0.707

0

0.283

 

VP T

0

0

1

0

 

0

0.707

0

0.283

 

0.5

0.612

0

0.245

 

 

 

1

1

0

0

0.5

0.612

0

0.245

 

0.866

0.353

0

0.424

 

 

 

0

0

0

1

 

 

 

1

1

0

0

 

 

0.866

1.061

0

0.141

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.142

 

2.5

 

0

1 VPx

 

 

 

 

 

 

 

 

 

 

 

0

 

2.5

0

1 VPy

Перспективное преобразование в фотографии

 

2.041

 

2.5

 

1

1 VP

 

2.041

0.833

0

 

z

– тема доклада

 

 

 

 

TP

 

 

 

 

 

1

 

 

 

 

 

6.142

 

7.5

0

1

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

Соседние файлы в предмете Компьютерная Графика