, .
, : . : 1) , ;
2) ; 3) , .
, , ¯ . 4 :
Line(X1, Y1, X1, Y2);
Line(X1, Y2, X2, Y2);
Line(X2, Y2, X2, Y1);
Line(X2, Y1, X1, Y1).
, . :
begin
Repeat
, 1- :
SledLine(,1,Na,X1,Y1,X2,Y2,XC,YC);
, 1- g
RisLineBox(g, 1, Nag, Xg1,Yg1,Xg2,Yg2, XCg,YCg)
Until E=4;
end;
, .. (. 127), O, g, () , g (1 - , 2 ).
. 127
Procedure O; { , }
var Xg1,Yg1,Xg2,Yg2,TUgol:float;
var Bx, Pd:tekst;
var El, Napr, :byte;
Procedure ;
begin
Repeat
, 1- :
SledLine(g,1,Nag,Xg1,Yg1,Xg2,Yg2,XCg,YCg);
:
TekUgol(Xg1,Yg1,Xg2,Yg2,TUgol);
TUgol:
StrokBox(m, Pd, TUgol<, Napr, El, Xg1, Yg1, Xg2, Yg2);
Until E=Nkg;
DelBox(g);
end;
Procedure ;
begin
Repeat
m 1- :
SledStrok(m, Pd, TUgol<, Napr, El, Xg1, Yg1, Xg2, Yg2);
g TUgol:
RisLineBox(g, 1, Nag, Xg1, Yg1, Xg2, Yg2, XCg, YCg),
Until E=Nkm;
end;
{ }
begin
; ; DelBox(m);
if TUgol = TUgol< then := 1 else := 2;
{ . 13 }
end;
(X1< X2, Y1< Y2; ):
Procedure Gr_XY(X1,Y1,X2,Y2);
var Pd:byte;
begin
Pd:=0; {Pd=1 - ;
Pd=2 - }
Repeat
, 1- g:
SledLine(g, 1, Nag, Xg1, Yg1, Xg2, Yg2, XCg, YCg);
|
|
:
TekUgol(Xg1, Yg1, Xg2, Yg2,U);
if U=0 or U=180 then begin
if Xg1<Xg2 then begin
X1:=Xg1; X2:=Xg2; Y:=Yg1;
end
else begin
X1:=Xg2; X2:=Xg1; Y:=Yg1;
end;
Pd:=Pd+1;
end;
f Pd=1{ } and (U=90 or U=270)
then begin
if Yg1=Y tnen begin
if Yg2>Y then begin
Y1:=Y; Y2:=Yg2;
end
else begin
Y1:=Yg2; Y2:=Y;
end;
end;
if Yg2=Y tnen begin
if Yg1>Y then begin
Y1:=Y; Y2:=Yg1;
end
else begin
Y1:=Yg1; Y2:=Y;
end;
end;
Pd:=Pd+1;
end;
Until Pd=2; { }
end;