Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠ΅
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΊ: Function Kvad (xc, yc, a: integer; ax, ay, bx, by, cx, cy, dx, dy, m: real; n: integer) :integer; Dx:=xc-a; dy:=yc+a; {Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ}. Xc:=WindowWidth div 2; {Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠΈΡΠΈΠ½Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°}. Cx:=xc+a; cy:=yc+a; {Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΡΡΠ΅ΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ}. Bx:=xc+a; by:=yc-a; {Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠΈ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠ΅ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΠΈΠΌΠ΅Ρ 1
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ square, ΡΡΡΠΎΡΡΠ΅ΠΉ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΠΈΡΠ°Π½Π½ΡΡ Π΄ΡΡΠ³ Π² Π΄ΡΡΠ³Π° ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ½Π°Π»ΠΈΠ· ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ: Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΡΠΎ Π²ΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ Π² Π½Π΅Π³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°ΠΌΠΈ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°. ΠΡΠΈΡΡΠΌ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°. ΠΡΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ 6 ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ². ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ:
ΠΎΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΡΠΎ Π²ΠΏΠΈΡΠ°Π½Π½ΡΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠΌ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ².
ΠΠΏΠΈΡΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
Π‘Π½Π°ΡΠ°Π»Π° Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ΅ΡΡΡΡΡ ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ (ΠΊΠ²Π°Π΄ΡΠ°Ρ). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Kvad ΡΡΡΠΎΡΡΠ°Ρ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° (ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°) ΠΌΠ°Π»ΡΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΡΠ°ΠΊ, ΡΡΠΎ Π²Π΅ΡΡΠΈΠ½Ρ Π΅Π³ΠΎ Π»Π΅ΠΆΠ°Ρ ΡΠΎΡΠ½ΠΎ Π½Π° ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°. Π ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ n, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
ΠΠ»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠ² Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ (x1,y1), (x2,y2). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°:
xc:=WindowWidth div 2; {Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠΈΡΠΈΠ½Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°}.
yc:=WindowHeight div 2; {Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π²ΡΡΠΎΡΡ — // - // - }.
ax:=xc-a; ay:=yc-a; {Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ}.
bx:=xc+a; by:=yc-a; {Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ Π²ΡΠΎΡΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ}.
cx:=xc+a; cy:=yc+a; {Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΡΡΠ΅ΡΡΠ΅ΠΉ Π»ΠΈΠ½ΠΈΠΈ}.
dx:=xc-a; dy:=yc+a; {Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ}.
Π³Π΄Π΅, Π° — Π΄Π»ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ.
function Kvad (xc, yc, a: integer; ax, ay, bx, by, cx, cy, dx, dy, m: real; n: integer) :integer;
begin.
if n=0 then Kvad:=0.
else.
begin {ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»ΠΈΠ½ΠΈΠΉ ΠΎΠΊΡΡΠ³Π»ΡΠ΅ΠΌ}.
line (round (ax), round (ay), round (bx), round (by));
line (round (bx), round (by), round (cx), round (cy));
line (round (cx), round (cy), round (dx), round (dy));
line (round (dx), round (dy), round (ax), round (ay));
dec (n); {ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΠΌ n Π½Π° 1}.
Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΠΊ:
Kvad:=Kvad (xc, yc, a, ax+(bx-ax)*m, ay+(by-ay)*m, bx+(cx-bx)*m, by+(cy-by)*m, cx+(dx-cx)*m, cy+(dy-cy)*m, dx+(ax-dx)*m, dy+(ay-dy)*m, m, n);
end;
end;
m — Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΡΡΠΎΡΠΎΠ½Ρ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ² Π΅Π΅ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ.
ΠΡΠ»ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠ°ΡΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ n, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΡΡ Π½Π° 1 (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ dec (n)), Π° Π² ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΎ Π΅Π³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ n0, ΡΠΎ Π΅ΡΡΡ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠ³ΡΠ°ΡΡ ΡΠΎΠ»Ρ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΠΎΠΉ «Π·Π°Π³Π»ΡΡΠΊΠΈ», ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΠΈΡΠ»ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ².