Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа № 5.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
94.21 Кб
Скачать

2.3. Трехмерная графика

Термин трехмерная компьютерная графика относится к особому типу изображений, создаваемых на компьютере. На самом деле графика является двумерной и создается на плоском экране или листе бумаги, однако воображение наблюдателя восстанавливает пространственную структуру изображаемого объекта. Свое название "трехмерные" компьютерные изображения получили потому, что создаются они при помощи проектирования трехмерных объектов, хранящихся в памяти на плоскость экрана или листа бумаги.

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

Существует множество способов формирования трехмерного изображений.

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

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

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

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

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

2.4. Порядок выполнения второй части лабораторной работы

1. Получить задание в виде тела вращения второго порядка (вариант 1, 2,3 или 4). Выбрать самостоятельно значения a, b и c. Зарегистрировать задание у преподавателя.

2. Выбрать параметры тела вращения, определить границы проекции тела вращения на плоскость Z=0:

XMIN, XMAX, YMIN, YMAX и X = XMAX - XMIN, Y = YMAX -YMIN.

3. Выбрать шаг квантования по оси X и Y: HX=X/10 и HY=Y/10.

4. Выбрать произвольно три соседние точки на поверхности A, B, С.

5. Выбрать точку наблюдения: X, Y, Z (X > 0, Z > 0, Y < 0).

6. Построить уравнение прямых линий, проходящих через точки A, B, C и точку наблюдения (X,Y,Z).

7. Решить уравнения и найти точки пересечения экрана (Y=0) и полученных прямых линий.

8. Построить плоскость S, проходящую через точки A,B,C.

9. Выбрать точку источника света: (XC YC ZC).

10. Найти вектор V, являющийся нормалью к плоскости S.

11.Найти прямую проходящую через точки источника света и A, которая задает направление луча света.

12.Найти косинус угла между лучом света и нормалью к плоскости S, которой соответствует интенсивности отражения света от поверхности.

13.Закодировать точки поверхности, подготовив значения координат Z поверхности второго порядка для сетки, построенной в п. п. 2-3.

14. Подготовить файл с координатами точек поверхности (см. пример содержания текстового файла в приложении 2).

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

16. Оформить отчет по лабораторной работе

2.5. Задания второй части лабораторной работы

1.Эллиптический параболоид:

z=(x×x)/(a×a)+(y×y)/(b×b).

2.Однополостный гиперболоид:

(x×x)/(a×a)+(y×y)/(b×b)-(z×z)/(c×c)=1.

3.Эллипсоид:

(x×x)/(a×a)+(y×y)/(b×b)+(z×z)/(c×c)=1.

4.Гиперболический параболоид:

z=(x×x)/(a×a)-(y×y)/(b×b).

ПРИЛОЖЕНИЕ 1

1.Уравнение плоскости:

Ax+By+Cz+D=0

2.Уравнение плоскости проходящей через три точки:

3.Определитель третьего порядка:

= a1×b2×c3+b1×c2×a3+c1×a2×b3-c1×b2×a3-b1×a2×c3-a1×c2×b3.

4. Уравнение прямой проходящей через две точки

5.Уравнение прямой проходящей через точку

и параллельно вектору (l, m, n):

6. Косинус угла между прямыми:

сos()=(l1×l2+ m1×m2 + n1×n2)/(L1×L2),

Li=sqrt(li×li+ mi×mi+ ni×ni), i = 1,2,

(l1 m1 n1), ( l2 m2 n2) – направляющие вектора прямых.

7. Условие перпендикулярности прямой и плоскости:

A/l=B/m=C/n,

(l m n) – направляющий вектор прямой.

Приложение 2

Поверхность

13 13

9 12 15 19 21 22 21 18 14 1 7 5 3

12 17 22 29 34 37 35 29 21 14 9 6 4

15 22 32 44 55 61 58 47 32 20 12 7 5

19 29 44 64 87 103 99 75 48 27 16 9 6

21 34 55 87 129 164 160 114 65 34 19 11 7

22 37 61 103 164 222 219 146 77 39 21 12 8

21 35 58 99 160 219 213 139 74 40 23 13 8

18 29 47 75 114 146 139 98 61 37 22 13 8

14 21 32 48 65 77 74 61 45 30 19 12 8

1 14 20 27 34 39 40 37 30 22 15 10 6

7 9 12 16 19 21 23 22 19 15 11 8 5

5 6 7 9 11 12 13 13 12 10 8 6 4

3 4 5 6 7 8 8 8 8 6 5 4 4

Первая запись текстового файла содержит название поверхности, например,

«Поверхность».

Вторая запись текстового файла содержит размерность матрицы,

например, «13 13».

Остальные записи файла содержат векторы- строки со значениями координат z поверхности. Значения z определены для каждой точки сетки.

11