Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Алгоритм Брезенхема





Будем рассуждать подобно алгоритму Брезенхема для отрезков (с соответствующими поправками на 4-й октант) [17]. Из двух возможных пикселов в 4-м октанте (соответствующих вертикальному и диагональному смещениям, которые обозначаются аналогично прежним s и d, см. рис. 4.10) будем выбирать тот, расстояние от окружности до которого меньше.

Рис. 4.8. Расстояния до окружности.

Для того чтобы выбрать один из двух возможных пикселей, будем сравнивать расстояния от них до окружности: где расстояние меньше - тот пиксел и будет искомым. В примере на рис. 4.8 сравниваются расстояния от точек S(xs, ys) и D(xd, yd) до окружности с радиусом R. Из евклидовой метрики получаем:

Но вычисление квадратного корня - вычислительно трудоемкая операция, поэтому при достаточно больших R мы будем заменять сравнение расстояний сравнением приближенных значений их квадратов (см. рис. 4.9):

Рис. 4.9. Приближенное сравнение расстояний.

Уменьшим два слагаемых на приблизительно одинаковые величины:

заменим на ,

заменим на

получим

Таким образом, приближенно

  1. D ближе к окружности, чем S

  1. S ближе к окружности, чем D

Рис. 4.10. Алгоритм Брезенхема для окружности

Пусть (x, y) - текущий пиксель. Обозначим

Тогда из двух возможных смещений d и s выберем.

  1. , т.е. (x+1, y + 1) ближе к окружности, чем (x, y+1):

d: Переходим в (x + 1, y + 1) и придаем соответствующие приращения F, ΔF(s), ΔF(d):

F = F +ΔF(d); ΔF(s) = ΔF(s)+4; ΔF(d) = ΔF(d)+8.
  1. , т.е. (x, y+1) ближе к окружности, чем (x + 1, y+1):

s: Переходим в (x, y + 1) и придаем соответствующие приращения F, ΔF(s), ΔF(d):

F = F +ΔF(s); ΔF(s) = ΔF(s)+4; ΔF(d) = ΔF(d)+4.

Если мы начинаем из (-R, 0), то начальные значения будут следующими:

Легко видеть, что в алгоритме все величины, связанные с F, кроме F начального, будут кратны 2. Но, если мы поделим все эти величины на 2 (в дальнейшем значения всех величин уже понимаются в этом смысле), то . Так как приращения F могут быть только целочисленными, то , где ; т.е. если отнять от всех значений, то знак F не изменится для всех T, кроме T = 0. Для того чтобы результат сравнения остался прежним, будем считать, что F = 0 теперь соответствует смещению s.

x = -r; y = 0; F = 1-r;ΔFs = 3;ΔFd = 5-2*r; while(x + y < 0){ plot8(x, y); if(F > 0) { // d: Диагональное смещение F += ΔFd; x++; y++; ΔFs += 2; ΔFd += 4; } else { // s: Вертикальное смещение F += ΔFs; y++; ΔFs += 2; ΔFd += 2; }}

Листинг 4.5. Алгоритм Брезенхема для окружности

Размерность вычислений этого алгоритма (т.е. отношение максимальных модулей значений величин, с которыми он оперирует к модулям исходных данных (в данном случае R)) равна 2.







Дата добавления: 2015-10-01; просмотров: 542. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

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

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Studopedia.info - Студопедия - 2014-2026 год . (0.013 сек.) русская версия | украинская версия