ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Β«ReadLineΒ»
ΠΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΠ΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ Π½Π° ΡΠ°ΡΡΡΠ΅, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΡΠ° ΡΠΎΡΠΊΠ°; R. ReadLine (Map) — ΠΎΠ±Ρ ΠΎΠ΄ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΈΠ· ΡΠΎΡΠΊΠΈ Map, ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΌΠΈΠ½ΡΡΠΈΠΉ ΠΠ°ΡΠ°Π»ΠΎ Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠ°ΡΡΡΠ° R ΡΠΏΠΈΡΠΎΠΊ Π»ΠΈΠ½ΠΈΠΉ Map. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠ΄Π΅Π»ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Β«ReadLineΒ» (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°ΡΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ. Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π·Π°Π΄Π°ΡΠΈ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡΠΈ Π½Π° ΡΠ°ΡΡΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°Π·Π΄Π²ΠΎΠ΅Π½ΠΈΡΠΌ ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡΠΌ. ΠΠΎΠΈΡΠΊ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΠ΅ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π½Π° ΡΠ°ΡΡΡΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π»ΠΈΠ½ΠΈΡΠΌ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°, ΠΏΠΎ ΠΊΠΎΠ½ΡΡΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ° Ρ ΡΠΈΠ»ΡΠ½ΡΠΌ ΠΈΡΠΊΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΠ° ΡΠ²Π»ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ.
ΠΡ ΠΎΠ΄Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ°ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ΅Π΄ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. Π Π°ΡΡΡ ΠΈΠΌΠ΅Π΅Ρ Π³Π»ΡΠ±ΠΈΠ½Ρ 1Π±ΠΈΡ Π½Π° ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ 600 dpi. Π€ΠΎΡΠΌΠ°Ρ bmp (ΠΎΡ ΡΠ»ΠΎΠ² BitMaP — Π±ΠΈΡΠΎΠ²Π°Ρ ΠΊΠ°ΡΡΠ°, ΠΈΠ»ΠΈ, Π³ΠΎΠ²ΠΎΡΡ ΠΏΠΎ-ΡΡΡΡΠΊΠΈ, Π±ΠΈΡΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π½Π΅ΡΠΆΠ°ΡΠΎΠ΅ (Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ Π²Π½ΠΎΡΠΈΡΡ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡΠΌΠ°Ρ bmp Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΠ‘ Windows, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ API.
ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π³Π΄Π΅ Π±ΡΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΎΡΠΊΠΈ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, Π΄Π΅ΡΠ°Π»Ρ), Π² Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ . Π‘ΠΏΠΈΡΠΎΠΊ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² ΠΏΠ°ΠΌΡΡΠΈ, Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠΌΠΈΠΌΠΎ Π½ΡΠΆΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ — Π»ΠΎΠΆΠ½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ ΠΏΡΠΈ Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡΠ°Π·Π΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° (ΡΠΈΡΡΠ½ΠΎΠΊ 3.6) ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° — 2×4 Π±Π°ΠΉΡΠ°, ΡΠ³ΠΎΠ» Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ 8 Π±Π°ΠΉΡ, ΡΠΈΠΏ ΡΠΎΡΠΊΠΈ 1 Π±Π°ΠΉΡ.
Π ΠΈΡΡΠ½ΠΎΠΊ 3.6 — Π‘ΡΡΡΠΊΡΡΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° Π³Π΄Π΅ Xi, Yi — ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΌΠΈΠ½ΡΡΠΈΠΈ Π½Π° ΡΠ°ΡΡΡΠ΅;
i — ΠΡΠΈΠ΅Π½ΡΠ°ΡΠΈΡ ΠΌΠΈΠ½ΡΡΠΈΠΈ;
T — Π’ΠΈΠΏ (ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ ΡΠ°Π·Π΄Π²ΠΎΠ΅Π½ΠΈΠ΅);
k — ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΈΠ½ΡΡΠΈΠΉ.
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠΈΡΠΊ ΠΌΠΈΠ½ΡΡΠΈΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ. ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΡΠΊΡΠΈΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΠ° Π»ΠΈΠ½ΠΈΠΉ, ΠΎΠ΄Π½ΠΈ ΠΈΠ· ΠΈΡΠΊΡΠΈΠ²Π»Π΅Π½ΠΈΠΉ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΈΠ½ΡΡΠΈΡΠΌΠΈ — ΡΡΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΈ ΡΠ°Π·Π΄Π²ΠΎΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ»ΠΈΠΏΠ°Π½ΠΈΡ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ ΠΈ ΠΎΠ±ΡΡΠ²Ρ ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ.
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.6 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ «ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅», ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ (ΡΠΎΡΠΌΡΠ»Π° 3.2).
(3.2).
Π³Π΄Π΅A= {x, y};
B= {x, y};
— ΡΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°.
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 3.7 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ «ΡΠ°Π·Π΄Π²ΠΎΠ΅Π½ΠΈΠ΅», ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ (ΡΠΎΡΠΌΡΠ»Π° 3.2) Π΄Π»Ρ ΡΠΈΡΡΠ½ΠΊΠ° 3.7.
Π ΠΈΡΡΠ½ΠΎΠΊ 3.6 — ΠΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ Π³Π΄Π΅ A — ΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΊΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠ° Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°;
B — Π²Π΅ΡΠΎΡΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°;
C — ΠΈΡΠΊΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠ° Π² Π²Π΅ΡΠΎΡΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ;
D1, D2 — ΠΏΡΠΈΠ»Π΅Π³Π°ΡΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ;
L1, L2 — Π²Π΅ΡΠΎΡΡΠ½ΡΠ΅ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°.
Π ΠΈΡΡΠ½ΠΎΠΊ 3.7 — Π Π°Π·Π΄Π²ΠΎΠ΅Π½ΠΈΠ΅ Π³Π΄Π΅ A — ΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΈΡΠΊΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠ° Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°;
B — Π²Π΅ΡΠΎΡΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°;
C — ΠΈΡΠΊΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠ° Π² Π²Π΅ΡΠΎΡΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ;
D1, D2 — ΠΏΡΠΈΠ»Π΅Π³Π°ΡΡΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ;
L1, L2 — Π²Π΅ΡΠΎΡΡΠ½ΡΠ΅ ΡΠΎΡΠ΅Π΄Π½ΠΈΠ΅ Π²ΠΏΠ°Π΄ΠΈΠ½Ρ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: ΡΠ°Π·ΡΡΠ² ΠΈ ΡΠ»ΠΈΠΏΠ°Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΏΡΠ½ΠΊΡΠ΅ 3.2.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠ΄Π΅Π»ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠ°:
Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΠ΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ Π½Π° ΡΠ°ΡΡΡΠ΅, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΏΠ°ΠΏΠΈΠ»Π»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΡΠ° ΡΠΎΡΠΊΠ°;
Π΅ΡΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° ΠΌΠΈΠ½ΡΡΠΈΡ, ΡΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π΅Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ, Π΄Π΅ΡΠ°Π»Ρ), Π² Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ . Π‘ΠΏΠΈΡΠΎΠΊ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠΌΠΈΠΌΠΎ Π½ΡΠΆΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ — Π»ΠΎΠΆΠ½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ ΠΏΡΠΈ Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡΠ°Π·Π΅.
R — Π±ΠΈΡΠΎΠ²ΡΠΉ ΡΠ°ΡΡΡ
Map — ΡΠΏΠΈΡΠΎΠΊ. Map = {x, y}i.
R.GetPixelColor (x, y) — ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Ρ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ {x, y} Π½Π° ΡΠ°ΡΡΡΠ΅ R.
R.FloodFill (x, y, color) — Π·Π°Π»ΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ Ρ ΡΠ²Π΅ΡΠΎΠΌ R. GetPixelColor (x, y) Π² ΡΠ²Π΅Ρ color.
R.width () — ΡΠΈΡΠΈΠ½Π° ΡΠ°ΡΡΡΠ° Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ .
R.height () — Π²ΡΡΠΎΡΠ° ΡΠ°ΡΡΡΠ° Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ .
R.ReadLine (Map[i]) — ΠΎΠ±Ρ ΠΎΠ΄ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΡΡ Π»ΠΈΠ½ΠΈΠΈ ΠΈΠ· ΡΠΎΡΠΊΠΈ Map[i], ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΌΠΈΠ½ΡΡΠΈΠΉ ΠΠ°ΡΠ°Π»ΠΎ Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΠ°ΡΡΡΠ° R ΡΠΏΠΈΡΠΎΠΊ Π»ΠΈΠ½ΠΈΠΉ Map.
i,: i[1, |Map|] List := R. ReadLine (Map[i]).
ΠΡΠ²ΠΎΠ΄ List.
ΠΠΎΠ½Π΅Ρ ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° «ReadLine».
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΉ ΠΈ ΡΠ°Π·Π΄Π²ΠΎΠ΅Π½ΠΈΠΉ, ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ.
dot0, dot1 -ΡΠΎΡΠΊΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡ Π»ΠΈΠ½ΠΈΠΈ.
vec0, vec1 — Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
GetVec (dot0, dot1) — Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΎΡΠΊΠΈ dot0 Π² dot1.
alphaTest — ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°.
NextDotCW (dot0, step) — ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΎΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ΅ΡΠ΅Π· step ΡΠΎΡΠ΅ΠΊ.
Return — Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π£ΡΠ»ΠΎΠ²ΠΈΡ ΠΎΠ±ΡΡΠ²Π° ΠΈ ΡΠ»ΠΈΠΏΠ°Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΠΏ.ΠΏ. 2.2.4.
ΠΠ°ΡΠ°Π»ΠΎ.
dot0 := Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
dot1 := NextDotCW (dot0, step);
vec0 := GetVec (dot0, dot1);
dot0 := dot1;
dot1 := NextDotCW (dot0, step);
vec1 := GetVec (dot0, dot1);
ΠΡΠ»ΠΈ |vec1 — vec0| < alphaTest, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏ. 11.
type := vec1 < vec0;
alpha := ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΈ;
{dot0, alpha, type} Return.
ΠΡΠ»ΠΈ ΠΎΠ±Ρ ΠΎΠ΄ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΡΡ ΠΏΡΠΈΠ²Π΅Π» ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏ. 13.
vec0 := vec1; ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΏ. 5.
ΠΠΎΠ½Π΅Ρ.