Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ќбщий алгоритм Ѕрезенхема




„тобы реализаци€ алгоритма Ѕрезенхема была полной необходимо обрабатывать отрезки во всех октантах. ћодификацию легко сделатть, учитыва€ в алгоритме номер квадранта, в котором лежит отрезок и его угловой коэффициепт.  огда абсолютна€ величина углового коэффициента больше 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; ћы поможем в написании ваших работ!; просмотров: 352 | Ќарушение авторских прав


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

Ћучшие изречени€:

—воим успехом € об€зана тому, что никогда не оправдывалась и не принимала оправданий от других. © ‘лоренс Ќайтингейл
==> читать все изречени€...

575 - | 517 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.009 с.