Трехмерная компьютерная графика
Категория реферата: Рефераты по информатике, программированию
Теги реферата: шпаргалки по гражданскому, свобода реферат
Добавил(а) на сайт: Патрикия.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
Процедура разложения в растр отрезка по методу цифрового дифференциального анализатора (ЦДА)
предполагается, что концы отрезка (x1,y1) и (x2,y2) не совпадают
Integer – функция преобразования вещественного числа в целое.
Примечание: во многих реализациях функция Integer означает взятие целой
части, т.е. Integer(( 8.5) = ( 9, а не ( 8. В алгоритме используется именно
такая функция.
Sign ( функция, возвращающая ( 1, 0, 1 для отрицательного нулевого и
положительного аргумента соответственно.
if abs ( x2 ( x1 ) ( abs ( y2 ( y1 ) then
Длина = abs ( x2 ( x1 ) else
Длина = abs ( y2 ( y1 ) end if полагаем большее из приращений (x или (y равным единице растра
(x = ( x2 ( x1 ) / Длина
(y = ( y2 ( y1 ) / Длина округляем величины, а не отбрасываем дробную часть использование знаковой функции делает алгоритм пригодным для всех квадрантов x = x1 + 0.5 * Sign ( (x ) y = y1 + 0.5 * Sign ( (y ) начало основного цикла i =1 while ( i ( Длина )
Plot ( Integer ( x ), Integer ( y ) ) x = x + (x y = y + (y i = i + 1 end while finish
С помощью этого алгоритма получают прямые, вполне удовлетворительного вида, но у него есть ряд недостатков. Во-первых, плохая точность в концевых точках. Во-вторых, результаты работы алгоритма зависят от ориентации отрезка. Вдобавок предложенный алгоритм использует вещественную арифметику, что заметно снижает скорость выполнения.
3. Алгоритм Брезенхема
Алгоритм Брезенхема выбирает оптимальные растровые координаты для
представления отрезка. В процессе работы одна из координат - либо x, либо у
(в зависимости от углового коэффициента) - изменяется на единицу. Изменение
другой координаты (либо на нуль, либо на единицу) зависит от расстояния
между действительным положением отрезка и ближайшими координатами сетки.
Такое расстояние называется ошибкой.
Алгоритм построен так, что требуется проверять лишь знак этой ошибки.
На рис.2.1 это иллюстрируется для отрезка в первом
Ѕ ( (y ( 1 (ошибка ( 0)
0 ( (y/(x < Ѕ (ошибка (x then
Врем = (x
(x = (y
(y = Врем
Обмен = 1 else
Обмен = 0
end if
инициализация [pic] с поправкой на половину пиксела
[pic] = 2 * (y ( (x
основной цикл
for i = 1 to (x
Plot ( x ,y )
While ( [pic] ( 0 )
If Обмен = 1 then x = x + s1 else y = y + s2 end if
[pic] = [pic] ( 2 * (x end while if Обмен = 1 then y = y + s2 else x = x + s1 end if
[pic] = [pic] + 2 * (y next i finish
Рекомендуем скачать другие рефераты по теме: предмет культурологии, реферат на тему организация.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата