Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Общий алгоритм Брезенхема




Чтобы реализация алгоритма Брезенхема была полной необходимо обрабатывать отрезки во всех октантах. Модификацию легко сделатть, учитывая в алгоритме номер квадранта, в котором лежит отрезок и его угловой коэффициепт. Когда абсолютная величина углового коэффициента больше 1, у постоянно изменяется на единицу, а критерий ошибки Брезенхема используется для принятия решения об изменении величины x. Выбор постоянно изменяющейся (на +1 или -1) кооординаты зависит от квадранта (рис.4.1.). Общий алгоритм может быть оформлен в следующем виде:

Обобщенный целочисленный алгоритм Брезенхема квадрантов

предполагается, что концы отрезка (x1,y1) и (x2,y2) не совпадают

все переменные считаются целыми

Sign - функция, возвращающая -1, 0, 1 для отрицательного, нулевого и положительного аргумента соответственно

инициализация переменных

x = x1

y = y1

x = abs(x2 - x1)

y = abs(y2 - y1)

s1 = Sign (x2 - x1)

s2 = Sign (y2 - y1)

обмен значений x и y в зависимости от углового коэффициента наклона отрезка

if y < x then

Врем = x

x = y

y = Врем

Обмен = 1

Else

Обмен = 0

End if

инициализация  с поправкой на половину пиксела

 = 2*y - x

основной цикл

for i = 1 to x

Plot (x,y)

while ( =>0)

if Обмен = 1 then

x = x + s1

Else

y = y + s2

End if

 =  - 2*x

End while

if Обмен = 1 then

y = y + s2

Else

x = x + s1

End if

 =  + 2*y

Next i

Finish

Рис.4.1. Разбор случаев для обобщенного алгоритма Брезенхема.

 

Пример 4.1. обобщенный алгоритм Брезенхема.

Для иллюсрации рассмотрим отрезок из точки (0,0) в точку (-8, -4).

начальные установки

x = 0

y = 0

x = 8

y = 4

s1 = -1

s2 = -1

Обмен = 0

е = 0

результаты работы пошагового цикла

i Plot е x y
         
  (0,0)      
    -16   -1
    -8 -1 -1
  (-1,-1)      
      -2 -1
  (-2,-1)      
    -16 -2 -2
    -8 -3 -2
  (-3,2)      
      -4 -2
  (-4,2)      
    -16 -4 -3
    -8 -5 -3
  (-5,-3)      
      -6 -3
  (-6,-3)      
    -16 -6 -4
    -8 -7 -4
  (-7,-4)      
      -8 -4

 

Рис.4.2. Результат работы обобщенного алгоритма Брезенхема в третьем квадранте.

На рис.4.2 продемонстрирован результат. Сравнение с рис. 2.2 показывает, что результаты работы двух алгоритмов отличаются.

В следующем разделе рассматривается алгоритм Брезенхема для генерации окружности.





Поделиться с друзьями:


Дата добавления: 2015-05-07; Мы поможем в написании ваших работ!; просмотров: 383 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

2272 - | 2124 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.