45
keyingi qadamga ya’ni i+1:
d
i+1
dan d
i
ayiramiz va x
i
- x
i-1
=1
ni hisobga olgan holda:
So`ng,
agar d
i
<0 bo`lsa s
i
tanlanadi, u holda yi= y
i
-1 va d
i
+1= d
i
+2dy.
Aks holda, ya’ni d
i
≥ 0 bo`lsa s
i
tanlanadi va
u holda y
i
-y
i
-1=1
Shunday qilib biz d
i+1
ni d
i
ning qiymati orqali hisoblash va
s
i
,T
i
nuqtalarni tanlash
uchun iterativ usulni hosil qildik. Boshlang`ich holatda
d
1
=2dy-dx (x
0
, y
0
)=(0,0) ni
hisobga olgan holda
i=1 da topiladi.
Brezenxeym algoritmi
uchun programmasi quyidagicha:
Procedure BREZENHAM(x1, x2, y1, y2: integer; c: word);
Var dx, dy, d, d1, d2, x, y, xend: integer;
Begin dx:= abs(x2-x1);dy:=abs(y2-y1);
d:=2*dy-dx; d1:=1*dy;d2:=:2*(dy-dx);
If x1>x2
Then begin
x:=x2; y:=y2; xend:=x2; end;
Else begin
x:=x1; y:=y1; xend:=x1; end;
PutPixel (x,y,c);
While x
If d<0
Then d:=d+d1;
Else begin
y:=y+1; d:=d+2; end;
PutPixel(x,y,c);
End; {while}
End. {BREZENHAM}
0>0>
Do'stlaringiz bilan baham: