Здавалка
Главная | Обратная связь

Задание на выполнение работы



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

2) Составить полную программу для построения кривой Hilbert и окружностей (Satellit) и исследовать ее для разных глубин рекурсии n.

 

Содержание отчета

1) Алгоритмы построения рекурсивных функций.

2)Программы их реализующие.

 

 

Контрольные вопросы

 

1) Какие функции называются рекурсивными ?

2) Когда применяются рекурсивные функции?

3) Что такое глубина рекурсии ?

4) Какие рисующие функции применяются для построения рекурсий?

 

 

Лабораторная работа №5

Формирование перспективных изображений

 

Цель работы: Приобретение навыков построения простейших каркасных моделей в трехмерной области

 

Содержание работы

 

В компьютерной графике, наряду с другими моделями, широко используются каркасные или проволочные модели [3]. Особенностью каркасной модели является то, что для ее описания используются геометрические объекты первого порядка: линии или ребра. Они применимы для моделирования объектов, представляющих собой полиэдры, т.е.замкнутые многогранники произвольной формы, ограниченные плоскими гранями или объекты, получаемые перемещением образующей ,которая фиксируется в некоторых положениях. Модель 3D в этом случае содержит список координат вершин полиэдра с указанием связей между ними, т.е. ребер (Рис.20).

 

Точка схода 1 Точка схода 2

 
 


G

 
 


H

C F

E B

D

 

A

Рис.20

 

На рис.20 двухмерное изображение куба представлено вместе с некоторыми дополнительными линиями. На этом изображении отрезки АВ и АD не параллельны нижнему или верхнему краю листа бумаги, так что можно было бы утверждать, что они горизонтальны. Однако они обозначают ребра куба в трехмерном пространстве, поэтому в принципе их можно назвать горизонтальными. По этой же причине можно утверждать, что два отрезка АВ и СD параллельны. По этой терминологии параллельные горизонтальные линии встречаются в так называемой точке схода. Все точки схода лежат на одной линии - линии горизонта. Линия горизонта и точка схода реально не существуют в трехмерном пространстве, но они помогают получить реалистические изображения. Такие изображения называются перспективными.

Очевидно, что картинка будет зависеть от положения глаза, так как “эффект перспективы” будет зависеть от расстояния между глазом и объектом. Чем дальше расположен глаз от объекта, тем более параллельными нам будут казаться ребра и тем более реалистичным будет изображен объект.

Объект в двух- и трехмерных пространствах может быть описан координатами точек (X,Y) и (x,y,z) соответственно. При необходимости получения перспективной проекции задается большое количество точек P(x,y,z), принадлежащих объекту, для которых предстоит вычислить координаты точек P’(X,Y) на картинке. Для этого нужно только преобразовать координаты точки Р из так называемых мировых координат (x,y,z) в экранные координаты (X,Y) ее центральной проекции P’. Будем предполагать, что экран расположен между объектом и глазом (точка Е на рис.21). Для каждой точки Р объекта прямая линия РЕ перемещает экран в точку P’ .

Это отображение удобно выполнять в два этапа [4]:

экран

1) Видовое преобразование- точка Р остается на Е своем месте, но система мировых координат пере-

ходит в систему видовых координат.

2) Перспективное преобразование -точное преобра- зование точки P в точку P’ , объединенное с пере- P’ ходом из системы трехмерных видовых коорди- нат в систему двухмерных экранных координат.

 

P

Рис.21

Мировые координаты (xw,yw,zw)

 

Видовое преобразование: Видовые координаты(xe,ye,ze)

 
 

 


Перспективное преобразование: Экранные координаты(X,Y).

В и д о в о е п р е о б р а з о в а н и е показано на рис.22

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

Ze zw

Е

 

j

o r

xe q

ye

xw yw

 

Рис.22

 

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

Точка Е задана в сферических координатах, т.е. мировые координаты могут быть вычислены как

xe =r sinjcosq ; ye=r sinjsinq ; ze=r cosj. (1)

 

Из точки Е можно наблюдать точки объекта только внутри некоторого конуса ось которого совпадает с линией ЕО, а вершина- с точкой Е.

Если заданы ортогональные координаты xе,yе ,zе точки Е, то можно вычислить ее сферические координаты по методике, изложенной в [4].

Конечной задачей является вычисление экранных координат X,Y, для которых

оси X и Y лежат в плоскости экрана, расположенной между точками Е и О и перпендикулярной направлению наблюдения ЕО. Начало системы видовых координат располагается в точке наблюдения Е. При направлении взгляда из Е в О положительная полуось xe направлена вправо, а положительная полуось ye- вверх. Направление оси ze выбирается таким образом, что значения координат увеличиваются по мере удаления от точки наблюдения.

Видовое преобразование может быть записано в форме

 

I xe ,ye , ze I =I xw ,yw ,zw I* I V I , (2)

 

где V- матрица видового преобразования размером 4х4. Матрица V получается путем перемножения четырех матриц преобразований [3]:

1) Матрицы T-переноса системы координат из точки О в точку Е.

2) Матрицы Rz - поворота системы координат вокруг оси z.

3) Матрицы Rx- поворота системы координат вокруг оси x.

4) Матрицы Myz- изменения направления оси x. (Последняя матрица необходима ввиду того, что система мировых координат имеет правостороннюю ориентацию, а система видовых - левостороннюю).

Опуская математические выкладки ,запишем матрицу V

 

sinq -cosj cosq -sinj cosq 0

cosq -cosj sinq -sinj cosq 0

V = 0 sinj -cosj 0 (3)

0 0 r 1

 

Итак, если заданы сферические координаты r, j, q для точки наблюдения, то положение точки в системе видовых координат можно вычислить по значениям ее мировых координат, используя только уравнения (2) и (3).

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.