- •Закраска. (Растровая развертка сплошных областей (ррсо)).
- •Заполнение многоугольников.
- •Простой алгоритм закраски с упорядоченным списком ребер.
- •Алгоритм заполнения по ребрам.
- •Алгоритм заполнения по ребрам с перегородкой.
- •Алгоритм со списком ребер и флагом.
- •Алгоритмы заполнения (закраски) с затравкой.
- •Простой алгоритм закраски с затравкой
- •Построчный алгоритм закраски с затравкой.
- •Отсечение.
- •Двух мерное отсечение.
- •2: Отрезок невидим.
- •3: Переходим к следующему отрезку. Метод Коэна – Сазерленда.
- •Непараметрический способ.
- •Метод предложен Сазерлендом и Спрулом: «Метод разбиения отрезка средней точкой».
- •Отсечение произвольным окном (выпуклым).
- •Отсечение параметрически заданного отрезка прямоугольным регулярным окном (частный случай нерегулярного).
- •Алгоритм Кируса – Бека.
- •Внутреннее и внешнее отсечение.
- •Определение факта выпуклости окна. Метод переносов и поворотов.
- •Разрезание невыпуклого окна.
- •Разбиение невыпуклых многоугольников.
- •Форматы графических файлов.
- •Истинно черно-белые изображения в градациях серого.
- •Цветовые плоскости изображения.
- •Гарантия точности соответствия цветов.
- •Колориметрические стандарты.
Отсечение.

Отсечение – это выделение из обширной сцены ее части с последующей визуализацией этой части. Алгоритмы отсечения могут быть двухмерными и трехмерными.
Двух мерное отсечение.

Регулярное окно – окно, у которого стороны параллельны осям координат.
Целью алгоритма отсечения является определение тех точек отрезков или их частей, которые лежат внутри отсекающего окна. Эти точки, отрезки или их части визуализируются, а остальные отбрасываются. Надо быстро отобрать отрезки аb, точки Р и отбросить отрезкиij. В отношении других отрезков надо решать задачи о пересечении их с окном. Точки, лежащие внутри окна должны удовлетворять следующим условиям:
Хл ≤ Х≤ Хп:Yн≤Y≤Yв. (точка, лежащая на
границе окна принадлежит окну) Хл , Хп,Yн,Yв– координатыX,Yлевого, правого, нижнего и верхнего краев окна. Отрезок может лежать внутри окна и будет видимым, если обе концевые точки лежат внутри окна (отрезокab). Если оба конца отрезка лежат ниже/выше, левее/правее окна, то такие отрезки лежат вне окна (отрезокij), они тривиально невидимы.
Обозначим через a,bконцы отрезка и приведем алгоритм, определяющий все полностью видимые и большинство невидимых отрезков
Проверить полную видимость отрезка (если хотя бы одна из координат отрезка не лежит в пределах окна, то он не полностью виден).
IF Хa < Хл OR Хa > Хп THEN 1
IF Хb < Хл OR Хb > Хп THEN 1
IF Ya < Yн OR Ya > Yв THEN 1
IF Yb < Yн OR Yb > Yв THEN 1
Отрезок полностью видим.
Визуализировать отрезок.
GO TO 3
Проверить полную невидимость (тривиальную невидимость) отрезка (если оба конца отрезка лежат ниже/выше, левее/правее окна, то такие отрезки тривиально невидимы).
1: IF Хa < Хл AND Хb < Хл THEN 2
IF Хa > Хп AND Хb > Хп THEN 2
IF Ya > Yв AND Yb > Yв THEN 2
IF Ya < Yн AND Yb > Yн THEN 2
Отрезок частично видим или пересекает продолжение диагонали, оставаясь невидимым.
Определить пересечение с окном.
2: Отрезок невидим.
3: Переходим к следующему отрезку. Метод Коэна – Сазерленда.
Определение полной видимости или невидимости отрезка.
|
|
|
|
|
|
окно |
|
|
|
|
|

Нумерация битов справа налево:
Первый бит=1 если точка левее окна.
Второй бит=1 если точка правее окна. Третий бит=1 если точка ниже окна.
Четвертый бит=1 если точка выше окна.
|
1001 |
1000 |
1010 |
|
0001 |
Окно 0000 |
0010 |
|
0101 |
0100 |
0110 |
22.11.02
Лекция 11.
|
отрезок |
Коды концов |
Результат логического умножения AND |
Примечание |
|
ab |
0000 0000 |
0000 |
Отрезок целиком виден (1й=0 2й=0) |
|
ij 1 ij 2 ij 3 ij 4 |
0010 0110 0101 0100 0001 0101 1001 1000 |
0010 0100 0001 1000 |
Отрезки целиком невидимы |
|
cd ef |
0000 0010 0010 0000 |
0000 0000 |
Отрезки частично видимы (1й=0 2й≠0) |
|
gh kl |
0001 1000 1000 0010 |
0000 0000 |
Может быть видим частично, а может быть невидим |
После анализа остаются отрезки, которые могут частично пересекать окно (gh) или не пересекать его (kl). Самый простой подход – определение пересечения двух отрезков с помощью решения уравнения, причем задача пересечения отрезков может быть решена либо параметрическими либо непараметрическими методами.
