Скачиваний:
84
Добавлен:
09.05.2014
Размер:
685 Кб
Скачать
☆

Отсечение.

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

Двух мерное отсечение.

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

Целью алгоритма отсечения является определение тех точек отрезков или их частей, которые лежат внутри отсекающего окна. Эти точки, отрезки или их части визуализируются, а остальные отбрасываются. Надо быстро отобрать отрезки а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). Самый простой подход – определение пересечения двух отрезков с помощью решения уравнения, причем задача пересечения отрезков может быть решена либо параметрическими либо непараметрическими методами.

Соседние файлы в папке конспект лекций