Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция Брезенхем окружность.doc
Скачиваний:
10
Добавлен:
15.11.2018
Размер:
203.26 Кб
Скачать

procedure bres_circle(xc,yc,r:interger):

Var X,y,d:integer:

procedure sim(x,y;integer);

begin

putpixel(x+xc,y+yc,White);

putpixel(x+xc,-y+yc,White);

putpixel(-x+xc,-y+yc,White);

putpixel(-x+xc,y+yc,White);

putpixel(y+xc,x+yc,White);

putpixel(y+xc,-x+yc,White);

putpixel(-y+xc,-x+yc,White);

putpixel(-y+xc,x+yc,White);

end;

begin

d:=3-2*y;

x:=0;

y:=r;

while(x <= y) do

begin

sim(x,y);

if d<0 then d:=d+4*x+6

else begin

d:=d+4*(x-y)+10;

dec(y)

end;

inc(x)

end;

end;

Трассировка алгоритма сведена в таблицу. Список пикселов выбранных алгоритмов состоит из (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

11

12

x

y

 

-14

 

 

0

8

(0,8)

 

 

 

 

 

 

-11

-13

 

0

8

(1,8)

 

 

 

 

 

 

-6

-7

 

2

8

(2,8)

 

 

 

 

 

 

-12

3

 

3

7

(3,7)

 

 

 

 

 

 

-3

11

 

4

7

(4,7)

 

 

 

 

 

 

-3

7

 

5

6

(5,6)

 

 

 

 

 

 

1

5

 

6

5

(6,5)

 

 

 

 

 

 

9

 

-11

7

4

(7,4)

 

 

 

 

 

 

4

 

3

7

3

(7,3)

 

 

 

 

 

 

18

 

-7

8

2

(8,2)

 

 

 

 

 

 

17

 

19

8

1

(8,1)

 

 

 

 

 

 

18

 

17

8

0

(8,0)

 

 

 

 

 

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