Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по кг2 2009.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.05 Mб
Скачать

Метод сортировки по глубине.

Для полигональной сетки алгоритм состоит из трех шагов:

  1. список многоугольников отсортировать по наибольшей коор-те

  2. разрешить неопределенности, связанные с перекрытием z – оболочек многоугольников

  3. вывести многоугольник в порядке уменьшения z – коор-ты

Проверка производится в 5 шагов:

Как только положительный ответ, то проверка прекращается.

  1. х – оболочки не перекрываются  многоугольники не перекрываются

  2. у – оболочки не перекрываются  многоугольники не перекрываются

  3. Р целиком лежит со стороны от плоскости Q, которая дальше от наблюдателя.

  1. Q лежит со стороны от Р, которая ближе к наблюдателю

  1. Проекции многоугольников не пересекаются

Если в результате всех 5-ти проверок получился отрицательный ответ, тогда многоугольники Р и Q нужно поменять местами.

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

Алгоритм художника: пространство разбивается плоскостью на два полупространства, одно содержит наблюдателя, второе не содержит. Первыми рисуются объекты второго полупространства, вторыми – с первого.

Метод плавающего горизонта.

(построение графиков однозначных функций 2-х переменных)

Фиксируем некоторое значение х=хi

Получаем график:

Для разных хi графики будут лежать в разных параллельных плоскостях.

- плоскость zj будет ближе к наблюдателю, чем zi.

Пусть для графика проекция есть

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

Нижний плавающий горизонт:

Строим только те части, которые выше верхнего плавающего горизонта или ниже нижнего плавающего горизонта.

Метод построчного сканирования.

В основе алгоритма – алгоритм растровой развертки многоугольника.

Рассматриваем все многоугольники, которые входят в состав сцены.

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

Каждый элемент таблицы ребер содержит х – коор-ту для нижней точки, у – коор-ту верхней точки, коэффициент для перехода к следующей строке и инд-р многоугольника,которому принадлежит ребро.

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

Таблица ребер:

Берем строку  и закрашиваем, пересекается с АВ, флаг внутри устанавливается, далее закраска для АВС, пересекается АС, флаг сбрасываем в цвет фона.

Строка  аналогично.

Строка  - после DF находится внутри двух треугольников, для упрощения вводим предположение, что треугольники не могут проникать друг в друга  в точке 2 из уравнения плоскости вычисляем какой треугольник ближе и применяем правило закраски ближнего многоугольника. До точки 3 ситуация не изменяется.

Если многоугольники могут проникать друг в друга  вводим в состав сцены псевдоребро, которая есть линия пересечения 2-х многоугольников. Чтобы учесть фон, можно позади всех многоугольников установить один большой фон.