Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры к экзамену.doc
Скачиваний:
6
Добавлен:
27.04.2019
Размер:
511.49 Кб
Скачать

17. Алгоритм Варнока

Данный алгоритм работает в пространстве образа (изображ). Алгоритм анализирует область на экране на наличие в ней видимых элементов. Если в окне нет изображения, то оно просто закрашивается цветом фона. Если же в окне есть элемент, то проверяется, достаточно ли он прост для визуализации. Если объект сложный, то окно разбивается на более мелкие для каждого из которых вып-ся тест на отсутствие или/и простоту изображения.

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

В данном алгоритме выд-ся 4 случая взаимного расположения окна и многоуг.:

1.многоуг. явл. внешн. если он целиком нах-ся вне окна

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

3. многоуг явл. пересекающим если он пересекает границу окна

4. многоуг. явл. охватывающим, если окно целиком нах-ся внутри него

18. Алгоритм художника

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

Метод основан на вычислении удаленности (глубины) di центров ячеек ci (в разных вариантах алгоритма используются и другие опорные точки ячеек) от наблюдателя, сортировке и выводе ячеек в порядке уменьшения элементов вектора d. При наблюдателе, находящемся в конечной точке S, глубина точки ci равна расстоянию

di = | ci - S |,

а в вычислительном аспекте более эффективно использовать квадрат расстояния как скалярное произведение:

di2 = (ci - S)(ci - S).

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

Увеличение значения ti означает приближение точки ci к наблюдателю. Следовательно, в качестве эквивалента глубины, который должен уменьшаться с ростом ti, можно принять легко вычислимое скалярное произведение

d i = -ciS.

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

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

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