Gо to 1

шагmD

20 хi = хi + 1

yi = yi + 1

i = i+ 2хi - 2уi+ 2

Gо to 1

Finish

Переменная предела устанавливается в нуль для окончания работы алгоритма на горизонтальной оси, в результате генерируется окружность в первом квадранте. Если необходим лишь один из октантов, то второй октант можно получить с помощью установки Предел =Integer (R/sqrt(2)), а первый - с помощью отражения второго октанта относительно прямой у = х (рис. 5.1). Блок-схема алгоритма приводится на рис. 5.5.

Gо to 1 - student2.ru

Рис. 5.5. Блок-схема пошагового алгоритма Брезенхема для генерации окружности в первом квадранте.

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

Рассмотрим окружность радиусом 8 с центром в начале координат. Генерируется только первый квадраннт.

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

x = 0

y = 8

= 2(1-8) = -14

Предел = 0

Пошаговое выполнение основного цикла

1 Plot (0,8)

yi > Предел (продолжать)

i < 0 go to 2

2 go to 10

10 x = 0+1 = 1

i = -14 +2 + 1 = -11

go to 1

1 Plot (1,8)

yi > Предел (продолжать)

i < 0 go to 2

2 go to 10

10 x = 1+1 = 1

i = -11 +2(2) + 1 = -6

go to 1

1 Plot (2,8)

...

Продолжать

Результаты всех последовательных проходов алгоритма сведены в таблицу. Список пикселов выбранных алгоритмов состоит из (0,8), (1,8), (2,8), (3,7), (4,7), (5,6), (6,5), (7,4), (7,3), (8,2), (8,1), (8,0).

Plot i ' x y
  -14    
(0,8)          
  -11 -13  
(1,8)          
  -6 -7  
(2,8)          
  -12  
(3,7)          
  -3  
(4,7)          
  -3  
(5,6)          
   
(6,5)          
    -11
(7,4)          
   
(7,3)          
    -7
(8,2)          
   
(8,1)          
   
(8,0)          

алгоритм завершен.

Результаты показаны на рис.5.6. вместе с реальной окружностью. Алгоритм легко обобщается для других квадрантов или дуг окружностей.

Gо to 1 - student2.ru

Рис. 5.6. Результаты работы пошагового алгоритма Брезенхема генерации окружности.

Наши рекомендации