.


:




:

































 

 

 

 





.

: ( ), , .

2.


:

- (DDA - Digital Differential Analyzer)

:

;

,

.

, , :

, ;

, 45 , ,

, , , 45 .

 

:

, :

dY/dX=Py/Px

Py = Yk - Yn - Y

Px = Xk - Xn - X.

.

, N, . N :

X0 = Xn; Xi+1 = Xi + Px/N.

Y0 = Yn; Yi+1 = Yi + Py/N.

Xi, Yi , .

, , , , .

(x1,y1) (x2,y2) (Px>= Py>= 0) :

 

:

Px= x2 - x1;

Py= y2 - y1;

PutPixel (x1, y1);

while (x1 < x2) {

x1:= x1 + 1.0;

y1:= y1 + Py/Px;

PutPixel (x1, y1);

}

, , , - , , .

, , , , . , < 1/2, , (0,0), (1,0) (. ), > 1/2, - (1,1) (. ). . .

2.1.

< 0, Y- Y, .. Y- . Y 1.

, , , :

X= x1;

Y= y1;

Px= x2 - x1;

Py= y2 - y1;

E= 2*Py - Px;

i= Px;

.

PutPixel(X, Y); /* */

while (i=i- 1 >= 0) {

if (E >= 0) {

X= X + 1;

Y= Y + 1;

E= E + 2*(Py - Px);

} else

X= X + 1;

E= E + 2*Py;

PutPixel(X, Y); /* */

}

0 <= dY <= dX. .

.

1/8 , . :

X2 + Y2 = R2

, Pi(Xi, Yi), , :

Ei(Pi) = (X2i + Y2i) - R2

. , , , . .

1/8 , X=0, Y=R.

i+1- , i-.

2.2. .

(Xi, Yi) (. .2.2 ) Pg = (Xi+1, Yi) - , Pd = (Xi+1, Yi-1) - , Pv = (Xi, Yi-1) - .

Dd
=
(X+1)2
+
(Y-1)2
-
R2

 

Dd < 0

di =|Dg| - |Dd|

di <= 0 - Pg

di > 0 - Pd

Dd > 0

si=|Dd| - |Dv|

si < 0 - Pd

si > 0 - Pv

Dd = 0

Pd.

. , .

,

, , :

v ,

v .

v .

 


 
, .3.1.

1  
2
1
2
3
.

 

 


3.1.

.

, , (. .5.1.).

.





:


: 2017-02-11; !; : 399 |


:

:

, , .
==> ...

1594 - | 1265 -


© 2015-2024 lektsii.org - -

: 0.013 .