Сравнительные характеристики трёх наиболее эффективных алгоритмов рисования отрезка
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: российские рефераты, реферат людина
| Добавил(а) на сайт: Erastov.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
2 Алгоритмы генерации отрезков
2.1 Цифровой Дифференциальный анализатор
Один из методов разложения отрезка в растр состоит в решении дифференциального уравнения, описывающего этот процесс. Для прямой линии имеем
Решение представляется в виде
где x1, y1 и x2, y2 - концы разлагаемого отрезка и yi - начальное значение для очередного шага вдоль отрезка. Фактически уравнение [1] представляет собой рекурентное соотношение для последовательных значений y вдоль нужного отрезка. Этот метод, используемый для разложения в растр отрезков, называется цифровым дифференциальным анализатором (ЦДА). Впростом ЦДА либо Dx, либо Dy (большее из приращений) выбирается в качестве единицы растра. Ниже приводится простой алгоритм, работающий во всех квадрантах:
Процедура разложения в растр отрезка по методу цифрового дифференциального анализатора (ЦДА)
предполагается, что концы отрезка (x1, y1) и (x2, y2) не совпадают
Integer - функция преобразования вещественного числа в целое.
Sign - функция, возвращающая -1, 0, 1 для отрицательного, нулевого и положительного аргумента соответственно
аппроксимируем длину отрезка
if abs(x2 - x1) >= abs(y2 - y1) then
Длина = abs(x2 - x1) else
Длина = abs(y2 - y1) end
полагаем большее из приращений x или y равными единице растра
x = (x2 - x1) // Длина
y = (y2 - y1) // Длина
округляем величины, а не отбрасываем дробную часть
использование знаковой функции делает алгоритм пригодным для всех квадрантов
x = x1 + 0.5 * Sign(x)
y = y1 + 0.5 * Sign(y)
начало основного цикла
i =1
while (i <= Длина)
Рекомендуем скачать другие рефераты по теме: шпаргалка егэ, реферат на тему искусство.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата