Видовое преобразование

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

Рис.3.2. Вершины и ребра каркасной модели объекта

Для того чтобы получить изображение объекта, как он выглядит при наблюдении из некоторой точки, необходимо знать:

1. Координаты точки наблюдения в мировой системе координат.

2. Вектор, указывающий направление наблюдения.

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

В нашем случае для простоты примем следующее рис. 3.3:

1. Начало мировой системы координат находится в центре объекта.

2. Вектор наблюдения направлен из точки наблюдения Е в начало мировой системы координат.

3. Плоскость экрана перпендикулярна вектору наблюдения, и этот вектор, пересекает ее в центре экрана.

Рис. 3.3. Расположение объектов сцены.

Чтобы получить изображение объекта выполним следующие действия:

1. Повернем мировую систему координат вокруг осей z и y так, чтобы ось х была направлена в точку Е.

2. Перенесем начало этой системы координат в точку Е.

3. Поменяем направление оси х на обратное.

4. Переименуем ось х в z, y в x, z в y.

5. Разместим экран на расстоянии d от точки наблюдения по новой оси z, так, чтобы ось х экрана была параллельна оси х новой системы координат, а ось y экрана – оси y новой системы координат.

Совокупность этих преобразований называется видовым преобразованием, а новая система координат – видовой системой координат.

Если теперь пересчитать координаты вершин объекта в видовой системе координат, и нарисовать на экране сцену используя видовые координаты x и y, игнорируя z, то мы получим изображение параллельной проекции сцены, как она выглядит при наблюдении из точки E.

Рассмотрим, каким образом можно выполнить видовое преобразование.

Будем задавать наше преобразование матрицей 4х4, которая получается путем перемножения следующих 4-х матриц элементарных преобразований:

Матрица поворота системы координат на угол вокруг оси z

рис. 3.4.

Матрица поворота системы координат на угол вокруг оси y.

Матрица переноса начала системы координат в точку Е.

Матрица S преобразования осей системы координат.

y
ye
ze

Рис. 3.4. Система координат до видового преобразования.

Матрица поворота системы координат вокруг оси z на угол будет следующей:

Как видно из рис. 3: , а, , где

После этого поворота оси координат займут положение как на рис. 3.5.

Рис 3.5. Система координат после поворота вокруг оси z.

Теперь видно, чтобы ось х была направлена в точку Е необходимо повернуть систему координат вокруг оси y на угол . Матрица такого преобразования следующая:

Как видно из рис. 3.5, , а ,
где , а .

Сейчас наша система координат выглядит следующим образом рис. 3.6.

Рис. 3.6. Система координат после поворота вокруг оси y.

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

, где .

После этого преобразования получим систему координат как на рис. 3.7.

Рис. 3.7. Положение координатных осей после переноса
начала координат в точку Е.

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: