Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Book_Sidenko.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
6.28 Mб
Скачать

12.4. Алгоритм построчного сканирования

Принцип: расширение алгоритма преобразования многоугольника в растровую форму; разница в том, что имеем дело не с одним многоугольником, а со всеми сразу.

Шаги:

  • Создается таблица ребер (ТР). Она содержит все ребра многоугольников, отсортированные по меньшей y-координате.

Описание ребра содержит:

Указание на многоугольник

  • Создается таблица многоугольников (ТМ).

Описание многоугольников содержит:

Коэффициенты уравнения плоскости (A, B, C, D)

Цвет

Ф лаг =

0 — вне

1 — внутри

  • Создается ТАР.

Содержит все активные ребра на текущей сканирующей строке. Ребра упорядочены по возрастанию x-координаты.

Указание на многоугольник

Пример.

Строка — четыре ребра в ТАР.

, флаг 1 = 1, флаг 2 = 0, извлекаем цвет 1.

Рис. 12.3

Флаг 2 = 0

Флаг 1 = 0, цвет = фон

Флаг 2 = 1, цвет = цвет2

Флаг 1 = 0;

Флаг 2 = 0, цвет = фон

Флаг 1 = 0;

Строка — четыре ребра в ТАР.

Флаг 1 = 1, цвет = цвет1

Флаг 2 = 0;

Флаг 1 = 1,

Флаг 2 = 1, вычисляется z1 и z2 из уравнений плоскости цвет = цвет 2

Флаг 1 = 0,

Флаг 2 = 1, цвет = цвет2

Флаг 1 = 0, цвет = фон

Флаг 2 = 0;

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

Рис. 12.4

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

12.5. Алгоритм разбиения области

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

Широко используется когерентность (однородность смежных областей).

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

При надо максимально 9 разбиений.

Конкретная реализация алгоритма зависит от метода разбиения и критерия определения простоты изображения в окне.

Вариант 1:

Рис. 12.5

  • область разбивается последовательно на четыре равные прямоугольные части;

  • критерий простоты — объекты не попадают в область.

Вариант 2:

  • критерий простоты — одна из четырех ситуаций:

Рис. 12.6

  1. Не один многоугольник не пересекает область (цвет равен цвету фона);

  2. Есть один внутренний или пересекающий многоугольник:

    1. цвет равен цвету фона;

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

  3. Есть один охватывающий многоугольник (цвет равен цвету многоугольника);

  4. Есть несколько внутренних, пересекающих многоугольников, и как минимум один охватывающий, расположенный ближе всех (цвет равен цвету охватывающего многоугольника).

Рис. 12.7

Меньше разбиений, но больше расчетов.

Вариант 3: область разбивается относительно вершин многоугольника.

Рис. 12.8

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]