3
3.1
k [01]
DDADigital Differential Analyzerxyx
y
LP0,P1,P0 (x0,y0),P1(x1,y1)k
P0 (x0,y0)xx0xx1ykxroundy01 01 xx yyk
xxpPxp,ypP1(xp+1,yp)P2xp+1,yp+1MP1P2
Mxp+1,yp+0.5
Qx=xp+1
MQP2
P1
a=y0-y1b=x1-x0c=x0y1-x1y0
d=a(xp+1)+b(yp+0.5)+c
dd0 = a+0.5b
d≥0P1
d1=a(xp+2)+b(yp+0.5)+c =d+a
d<0P2
d2=a(xp+2)+b(yp+1.5) = d+a+b
dd2dd
2*aa+a
3-5s<t
Si
Si;s≥tTi
Ti
dx=x2-x1dy=y2-y1
di
di≥0Ti
di<0Si
2diBresenham
)(22 11 iiii yydxdydd
dxdyd 21
)(21 dxdydd ii
dydd ii 21
1
2
3
3.2
x=0y=0x=yx=-yx,y7
x=0x=y
1b
xxpPxp,ypP1(xp+1,yp)P2xp+1,yp-1
MP1P2
Mxp+1,yp-0.5
MP1
P2
d
d
d≥0P2
d<0P1
RRRRFd 25.1)5.0(1)5.0,1( 220
rx=0x=y1/8
xi+1=xi +1
y
y=yiy=yi-1
y
yiyi-1
d i+1=2(xi+1)2+yi2+(yi-1)2-2r2
d
d0= 3-2r
d i+1>=0y=yi-1
di+2 =d i+1 + 4(xi- yi)+10
d i+1<0y=yi
d i+2 =d i+1+ 4x i+6
3.3
ET
yyyminyminx
AELxAEL
ETAEL
ymax y
xETxAELx
1/k
next
ET
1AELyET
2AELET
ETyAELAELx
AELy
AELy>=ymax
AELxi+1=xi + 1/k
AELx
y =y+1
insideinsideinsideinside insideinside
insideinside
1
1
2
3
2
1
2
3
3
1
2
3
3.4
1
2
1
2
3.5
Px,y
xrxxl ytyyb
1Cohen-Sutherland
P1P21P1P2P1P2 2P1P2 3
Cohen-Sutherland4 bit3-42
ytybxrxl4CtCbCrCl








o t h e r
xlxc
o t h e r
xrxc
o t h e r
ybyc
o t h e r
ytyc
lrbt 0
1
0
1
0
1
0
1
0000”
2
3-barsky



101
1
uyuyy
xuxx
4,3,2,1 kqup kk
pk,qk
pk=0kk=1,2,3,4qk<0qk≥0
pk<0
pk>0
pk≠0kuu=qk/pk
-Barsky
1kpk=0qk<0
2pk<0krk=qk/pk 0rku1
3pk>0krk=qk/pk 1rku2
4u1>u2uu1u2
1Sutherland-Hodgman
2Weiler-Atherton
P1P2P1P1P2I
1P1P2P1
2P1P2IP2P2P1P1P2IIS
3IP1P1
-
1
2
3\
Cohen-Sutherland
Px,y,z6
1 0000”
2
3
3.6
1
2
3
1
2
3