Задание на выполнение работы
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 Все права принадлежат авторам размещенных материалов.
|