Лекция: Использование Булевой алгебры для анализа и синтеза логических электронных схем.
3. Найти кратчайшее расстояние от точки А(0; 1) до прямой y=2x+3, используя методы вариационного исчисления.
1. Алгоритм удаления невидимых граней, использующий Z — буфер.
Для реализации этого алгоритма требуется два буфера:
1) Буфер глубины (Z — буфер).
2) Буфер регенерации.
Из 3-х мерной сцены выбираем последовательно грани и развертываем в растр. Но предварительно буфер регенерации заполняем фоновым цветом, а в Z — буфер помещаем значения максимально большие для этой сцены, а в Z — буфере получаются значения значительно большие чем глубина сцены. И для каждого многоугольника во время растровой развертки выполняем следующие алгоритмические шаги:
1) Если глубина многоугольника Z(x, y) в текущей точке растровой развертки меньше чем соответствующая точка в Z — буфере, то точка находится ближе к наблюдателю и в буфер регенерации в точку (x, y) записываем атрибут многоугольника, ZБУФ(x, y) <- Z(x, y).
2) Иначе {Z(x, y) > ZБУФ(x, y)} переход к следующей точке растровой развертки многоугольника.
Главным недостатком алгоритма является большой размер Z — буфера. Сцена будет появляться в той последовательности в какой мы анализируем грани.
Достоинства: обрабатываются сцены любой сложности, прост в реализации.
(x2, y2, z2)
(x3, y3, z3)
(x1, y1, z1)
где
Для облегчения вычисления Z при растровой развертке многоугольника можно воспользоваться:
Аналогично вычисляется Z при переходе на следующую сканирующую строку:
Алгоритм удаления невидимых граней, использующий Z — строку.
Работает в рамках одной сканирующей строки. Количество элементов в Z — строке соответствует разрешающей способности по горизонтали. Глубина Z — строки определяет величину значения Z (см. Алгоритм использующий Z — буфер).
Для повышения эффективности работы алгоритма за каждым многоугольником закрепляют верхнюю и нижнюю сканирующие строки.