: "". - .
() , . . 2D- 3D-, , . . , ; ,
, ,
- ,
- ,
- .
, , 0110 :
- :
: (xl,ya),(xr,yb) ; (x1,y1) (x2,y2).
: (x1,y1) .
1. (1 2) .
2. (p1 and p2 <> 0), 9, 3.
3. (p1 = 0 and p2 = 0) - ( (1,y1) - (x2,y2) 9, 4.
4. 1=0 - (x1,y1) (x2,y2), , : =1,1=2,2=,y=y1,y1=y2,y2=y,p1=p2 5, 5.
5. (x1,y1) - - : y1=y1+(y2-y1)*(xl-1)/(2-1), x1=xl 1, 6.
6. (x1,y1) - - : 1=1+(2-1)*(ya-y1)/(y2-y1), y1=ya 1, 7.
7. (x1,y1)- - : y1=y1+(y2-y1)*(xr-1)/(2-1), 1=xr 1, 8.
8. (x1,y1) - - : 1=1+(2-1)*(yb-y1)/(y2-y1),y1=yb 1, 1.
9. .
(x,y) ( 1 ) , , :
function kod(x,y,xl,ya,xr,yb:integer):byte;
var
kp:byte;
begin
kp:=0;
if x<xl kp:=kp or $01;
if y<ya kp:=kp or $02;
if x>xr kp:=kp or $04;
if y>yb kp:=kp or $08;
|
|
kod:=kp
end;
(xl,ya),(xr,yb) - , kod - .
PASCAL , -, . . , . .
.
.
4. , , .
:
1. ?
2. ?
3. 2D- 3D- ?
4. , , ?
7. , . . [] / . . ; . . . . .; . . . , . . . - .: , 1989. - 503c.
8. , . . : , . [] / . . , . . . - .: -, 1996. - 287c.: .