ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘Π
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ Π² Borland C Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ — ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π½Π° Π²ΡΠ΅Ρ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°Ρ , ΠΊΡΠΎΠΌΠ΅ VGA ΠΈ IBM8514, ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄Ρ ΡΠ²Π΅ΡΠΎΠ² ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΡΠ²Π΅ΡΠΎΠ² Π°Π΄Π°ΠΏΡΠ΅ΡΠ°. Π ΠΎΠ»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ VGA Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½Π°Ρ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π½ΠΈΠΆΠ΅. ΠΡΠ°ΠΉΠ²Π΅Ρ IMB8514 Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘Π (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ°ΡΠ΅Π΄ΡΠ°: ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠΊΠ° ΠΈ ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
ΠΠ ΠΠΠ ΠΠΠΠΠ ΠΠΠΠΠΠ Π Π‘Π Π ΠΠΠΠ’Π Π ΠΠ ΠΠ€ΠΠ§ΠΠ‘ΠΠΠ Π ΠΠΠΠΠ
1. ΠΠΠΠΠ ΠΠ ΠΠ€ΠΠ§ΠΠ‘ΠΠΠ₯ Π€Π£ΠΠΠ¦ΠΠ3
1.1. ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
1.2. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°
1.3. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΡΡΡΠΎΠΌ ΡΠΎΡΠ΅ΠΊ
1.4. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠΌ
1.5. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ
1.6. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ
1.7. ΠΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
2. ΠΠ ΠΠΠΠ« ΠΠ ΠΠΠ ΠΠΠΠΠ ΠΠΠΠΠΠ― ΠΠ ΠΠ€ΠΠ§ΠΠ‘ΠΠΠΠ Π ΠΠΠΠΠ
2.1. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
2.2. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°
2.3. ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΡΡΠΈΡΡΠΎΠ² Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»
2.4. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³ΡΡ
2.5. ΠΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
2.6. ΠΡΠ²ΠΎΠ΄ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
2.7. ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΡΠ°Π½Π°
2.8. Π Π΅Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ
2.9. ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π²Π²ΠΎΠ΄Π° ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
2.10.ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΡ ΠΎΠ΄Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΠΠ
2.11.ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ
2.12.ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΡΡΠ°Π½ΠΈΡ
2.13.Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² bmp-ΡΠΎΡΠΌΠ°ΡΠ΅
2.14.Π Π°Π±ΠΎΡΠ° Ρ ΠΌΡΡΡΡ
3. ΠΠΠΠΠΠΠ― ΠΠΠ― ΠΠΠΠΠ ΠΠ’ΠΠ ΠΠΠ Π ΠΠΠΠ’Π«
3.1. ΠΠ²Π΅Π·Π΄Π½ΠΎΠ΅ Π½Π΅Π±ΠΎ
3.2. Π‘Π½Π΅Π³ΠΎΠΏΠ°Π΄
3.3. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ
3.4. ΠΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π·Π²Π΅Π·Π΄Ρ ΠΠΠΠΠΠΠΠ ΠΠ€ΠΠ§ΠΠ‘ΠΠΠ Π‘ΠΠΠ‘ΠΠ
1. ΠΠΠΠΠ ΠΠ ΠΠ€ΠΠ§ΠΠ‘ΠΠΠ₯ Π€Π£ΠΠΠ¦ΠΠ
1.1. ΠΠ±ΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. Π‘Π΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ DOS, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΠΌΠ΅ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ.
Π ΡΠ°ΠΌΡΡ ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ ΠΠ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΊΡΠ°Π½ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ — ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ (pixels, ΠΎΡ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ picture elements), ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ ΡΠ°ΡΡΡ. Π§ΠΈΡΠ»ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ (ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅) Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΏΠ°ΡΠΎΠΉ ΡΠΈΡΠ΅Π», ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π² ΡΡΡΠΎΠΊΠ΅, Π° Π²ΡΠΎΡΠΎΠ΅ — ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠΊΡΠ°Π½Π° ΡΡΠ°Π²ΠΈΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡΠΎΠ² (Π°ΡΡΠΈΠ±ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ) Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΠ. ΠΡΠ° ΠΎΠ±Π»Π°ΡΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° (Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°) — ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠΎΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°. ΠΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅Ρ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°. ΠΡΠΈΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ°. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ — bit-mapped graphics. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉΡΡ Π½Π° ΠΠ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ.
Π ΡΡΠ΄Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ Π΄Π²ΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°ΡΡΠΈΠ±ΡΡΡ Π²ΡΠ΅Ρ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΡΠΊΡΠ°Π½Π°. Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ. Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π»ΡΠ±Π°Ρ ΠΈΠ· ΡΡΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅, Π·Π°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Π΅ΡΡ ΡΠΊΡΠ°Π½. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π±ΡΡΡΡΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π²ΡΡ «ΡΠ΅ΡΠ½ΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΡ» ΠΏΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Π½Π΅ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠΉ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΈΠ·Π±Π΅Π³Π°Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΡΠ΅ΠΊΡΠΎΠ².
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠ΅Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
Β· Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π² ΠΏΠ°ΠΌΡΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ DOS ΠΈΠ»ΠΈ BIOS, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ ΠΏΡΡΠΌΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡΡ;
Β· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠΌ.
Π ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² (CGA, EGA, VGA ΠΈ Π΄Ρ.), Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ (ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ), Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ (video modes). ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΡΠ°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ BIOS Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 10h.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½, ΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡΠΎΠ², ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΠΊΡΠ΅Π»Ρ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ±ΡΡΠ½ΠΎ Π°ΡΡΠΈΠ±ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 1, 2, 4 ΠΈΠ»ΠΈ 8 Π±ΠΈΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°. ΠΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΡΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ, ΡΠΎ Π³ΡΠ°ΡΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ Π΄Π²ΡΡ ΡΠ²Π΅ΡΠ½ΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠ½ΠΎ-Π±Π΅Π»ΠΎΠΉ (ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ²Π΅ΡΠ° Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΈΠΏΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°). ΠΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ n Π±ΠΈΡΠ°ΠΌΠΈ, ΡΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ N_pallette=2n ΠΎΡΡΠ΅Π½ΠΊΠΎΠ² ΡΠ²Π΅ΡΠ° (ΠΏΠ°Π»ΠΈΡΡΠ° ΡΠ΅ΠΆΠΈΠΌΠ°). Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈΠ½ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ n ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠ΅ΠΉ ΡΠ²Π΅ΡΠΎΠ² (color planes).
Π Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°Ρ Ρ ΠΌΠΎΠ½ΠΎΡ ΡΠΎΠΌΠ½ΡΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π»ΡΡΠ°, Ρ. Π΅. ΡΡΠΊΠΎΡΡΡΡ ΡΠΎΡΠΊΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅, Π° Ρ ΡΠ²Π΅ΡΠ½ΡΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠΌ — ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡΡ ΡΡΠ΅Ρ Π»ΡΡΠ΅ΠΉ, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ° Π½Π° RGB-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ — ΠΊΡΠ°ΡΠ½ΡΡ, Π·Π΅Π»Π΅Π½ΡΡ ΠΈ ΡΠΈΠ½ΡΡ. ΠΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΠΈΠΌΠ΅Π΅Ρ N Π³ΡΠ°Π΄Π°ΡΠΈΠΉ, ΡΠΎ ΠΎΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΎΡΡΠ΅Π½ΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ N_colors=N3, ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΡΠΈΡΠ»ΠΎ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΎΡΡΠ΅Π½ΠΊΠΎΠ² Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠ½ΡΠΉ, Π±Π΅Π»ΡΠΉ ΠΈ Π³ΡΠ°Π΄Π°ΡΠΈΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ.
Π¦Π²Π΅ΡΠ½ΠΎΠΉ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΡ Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·Π²Π΅ΡΡΠΊΠΈ ΠΊΠ°Π΄ΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² ΡΠΈΠ³Π½Π°Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ Π»ΡΡΠ΅ΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΡ Π·Π° RGB-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. Π Π°Π±ΠΎΡΡ ΡΡ Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ, ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π²Ρ ΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ΅Ρ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π²Π½Ρ Π½ΠΎΠΌΠ΅ΡΡ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π°. Π’Π°ΠΊΠ°Ρ ΡΡ Π΅ΠΌΠ° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΡΡΠΎΠΉ ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΡΠ²Π΅ΡΠΎΠ². ΠΡΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ , ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ m Π±ΠΈΡΠ°ΠΌΠΈ, ΡΠΎ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ²Π΅ΡΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ N_table=2m ΡΡΡΠΎΠΊ (Π²Ρ ΠΎΠ΄ΠΎΠ²). ΠΡΠ΅ ΡΡΠΈ ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΠΊΠ°ΡΡΠ΅ ΡΠ²Π΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΄Π²ΠΎΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΠΈ. Π‘ΠΏΠΎΡΠΎΠ± ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGB-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΡ ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΎ Π²Ρ ΠΎΠ΄Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ, ΡΠ°Π²Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ°. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΡΡΡ ΡΠ²Π΅ΡΠΎΠ² Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π΅ΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ.
1.2. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ΄ΡΠ° ΠΈ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ graphics. lib (Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ). ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠ΅ΠΉΡΡ ΠΊ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, Π² ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠ΅ ΡΠΈΠΏΡ:
#include
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΈΡΠΌΡ Borland International (BGI — Borland Graphics Interface) ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ: ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π½Π°Π±ΠΎΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ². Π―Π΄ΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ½ΠΎ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΠΏΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°. ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΡΠ²Π»ΡΡΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .bgi. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· (binary image) Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π»ΠΈΠ·ΠΊΠΈΡ ΠΏΠΎ ΡΠΈΠΏΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ². ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΎΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, EGA ΠΈΠ»ΠΈ VGA.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ (Π½ΠΎ Π½Π΅ Π²ΡΠ΅) Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ BIOS. ΠΠ»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ², ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΌΠ°ΠΊΡΠΎΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (EGALO, EGAHI, VGAHI ΠΈ Π΄ΡΡΠ³ΠΈΠ΅).
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ±ΡΠ°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠΌΡ Π°Π΄Π°ΠΏΡΠ΅ΡΡ, ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΡΠ΄ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ detectgraph, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°. ΠΡΠΎΡΠΎΡΠΈΠΏ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ;
void far detectgraph (int far *graph_driver, int far *graph_mode);
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ²ΠΎΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ Π½ΠΎΠΌΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π΄Π»Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ initgraph (Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ Π΄Π°Π½Π½ΡΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ).
ΠΡΠ»ΠΈ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ graphresult Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -2. Π€ΡΠ½ΠΊΡΠΈΡ graphresult Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΊΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏ
int far graphresult (void);
ΠΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Ρ ΡΠ°Π½ΠΈΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ graphresult, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΎ ΠΎΠ±Π½ΡΠ»ΡΠ΅ΡΡΡ.
ΠΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΊΠΎΠ΄ΠΎΠ² Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ grapherrormsg. ΠΡΠΎΡΠΎΡΠΈΠΏ ΡΡΠ½ΠΊΡΠΈΠΈ ;
char far *grapherrormsg (int error_code);
ΠΡΠ»ΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ graphresult, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠ΄Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ initgraph Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΎΠΌ
void initgraph (int far *graph_driver, int far *graph_mode, char far *path_to_bgi);
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, Π½ΠΎΠΌΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈ ΠΏΡΡΡ ΠΊ BGI-ΡΠ°ΠΉΠ»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°. Π€ΡΠ½ΠΊΡΠΈΡ initgraph ΠΈΡΠ΅Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅ BGI-ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ, Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠ°ΠΉΠ» ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΡΠ΄ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ. ΠΡΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ graphresult Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ GR_Ok, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ — ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ graphics.h.
Π€ΡΠ½ΠΊΡΠΈΡ
void far closegraph (void)
ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π²ΡΡ ΠΏΠ°ΠΌΡΡΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΠ°ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΡΠΈΡΠ°Π΅Ρ Π±ΡΡΠ΅Ρ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π²ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠΈΠΌΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΡΠΈΡΡΠ΅ΠΌΡ:
int main (void)
{
int gd, gm, err;
detectgraph (&gd,&gm); /* ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° */
err=graphresult (); /* ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ */
if (err) { printf («n%s», grapherrormsg (err)); return 1; }
initgraph (&gd,&gm,"c:\borlandc\bgi"); /* ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ */
err=graphresult (); /* ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ */
if (err) { printf («n%s», grapherrormsg (err)); return 2; }
/* …ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ…*/
closegraph (); /* Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ */
return 0;
}
ΠΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½ΠΎΠΌΠ΅ΡΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΡ, Π° Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΡ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ, Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ Π² ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ:
int main (void)
{
int gd=VGA, gm=VGAHI, err;
initgraph (&gd,&gm,"c:\borlandc\bgi");
err=graphresult ();
if (err)
{
printf («n%s», grapherrormsg (err));
return 1;
}
/* …ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ…*/
closegraph ();
return 0;
}
ΠΠ»Π°Π²Π½ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ initgraph ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½Π° ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π΄ΠΈΡΠΊΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ BGI-ΡΠ°ΠΉΠ»Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²ΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° .bgi Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠΈΠΏΠ° .obj ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ bgiobj.exe. ΠΡΡΠ°ΡΠΈ, Π΄Π°Π½Π½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ chr-ΡΠ°ΠΉΠ»ΠΎΠ² Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠΈΡΡΠ°ΠΌΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ.
Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½ΡΠΆΠ½ΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, Ρ. Π΅. ΡΠΎΠΎΠ±ΡΠΈΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ registerbgidriver, ΠΊΠΎΡΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°:
int registerbgidriver (void (*driver)(void));
ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ — ΠΈΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠ΅ΡΡΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΠΌΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ. ΠΠΌΠ΅Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ , ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΈΠ»ΠΈΡΡ bgiobj.exe. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ²:
void CGA_driver (void);
void EGAVGA_driver (void);
void IBM8514_driver (void);
void Herc_driver (void);
void ATT_driver (void);
void PC3270_driver (void).
ΠΡΠ»ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ graphresult Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ -4. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ initfgraph, ΠΏΡΠΈ ΡΡΠΎΠΌ Π΅Π΅ ΡΡΠ΅ΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ (ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π½ΡΠ»Π΅Π²Π°Ρ ΡΡΡΠΎΠΊΠ° ««).
ΠΡΠΈΠΌΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ:
int main (void)
{
int gd, gm, err;
detectgraph (&gd,&gm);
err=graphresult ();
if (err)
{
printf («n%s», grapherrormsg (err));
return 1;
}
registerbgidriver (EGAVGA_driver);
err=graphresult (); /* ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ */
if (err)
{
printf («n%s», grapherrormsg (err));
return 1;
}
initgraph (&gd,&gm," «); /* ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ */
if ((err = graphresult ()) ≠ grOk)
{
printf («n%s», grapherrormsg (err));
return 1;
}
/* …ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ…*/
closegraph (); /* Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ */
return 0;
}
ΠΡΠ»ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎ Ρ ΠΎΠ΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΠΎ Π΄ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ initgraph Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±ΡΠΎΡΠΈΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ closegraph Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π½ΠΈΠΌΠ°Π»Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠΌΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
char far *getdrivername (void);
ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΈΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
int far getmaxmode (void);
Π’Π΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π΄Π»Ρ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ
int far getgraphmode (void);
ΠΠΎ Π½ΠΎΠΌΠ΅ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠΎΠΊΡ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
char far *getmodename (int mode_number);
Π Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½ΠΎΠΌΠ΅ΡΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ (Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ)
void far getmoderange (int graph_driver, int far *min_mode, int far *max_mode);
ΠΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ Π±Π΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ initgraph ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² Π΄ΡΡΠ³ΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
void far setgraphmode (int new_mode);
ΠΡΠ³ΡΠΌΠ΅Π½Ρ new_mode ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌΠ° Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π°
ΡΡΠ½ΠΊΡΠΈΡ
void far restorecrtmode (void);
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅Ρ Π² ΡΠΎΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Ρ. Π΅. Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ initgraph. ΠΠ· ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ setgraphmode.
ΠΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΌΠ΅Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈ Π΅Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ
void far graphdefaults (void);
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
Β· Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½ΡΠ»Π΅Π²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ;
Β· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π²ΠΎ Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ;
Β· ΡΠ΅ΠΊΡΡΠ°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠΎΡΠΊΡ (0,0);
Β· ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ²Π΅ΡΠ° ΠΏΠ°Π»ΠΈΡΡΡ, ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΈΡΡΡΡΠΈΠΉ ΡΠ²Π΅Ρ (15) ΠΈ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° (0);
Β· ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΏΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ;
Β· ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΡΠ½ΡΠΉ ΡΡΠΈΡΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ.
1.3. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΡΡΡΠΎΠΌ ΡΠΎΡΠ΅ΠΊ
Π Π°ΡΡΡΠΎΠΌ ΡΠΎΡΠ΅ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½Π°Ρ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΡΠΎΡΠ΅ΠΊ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΠΊΡΠ°Π½ Π΄ΠΈΡΠΏΠ»Π΅Ρ.
Π§ΡΠΎΠ±Ρ Π² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π»ΡΠ±ΡΡ ΠΈΠ· ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΡΡΠ°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ, Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ
void far setvisualpage (int page);
Π€ΡΠ½ΠΊΡΠΈΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ, Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ» Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π‘ΡΡΠ°Π½ΠΈΡΡ Π½ΡΠΌΠ΅ΡΡΡΡΡΡ Ρ Π½ΡΠ»Ρ. Π€ΡΠ½ΠΊΡΠΈΡ graphresult Π½Π΅ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΠΏΠΎΠΏΡΡΠΊΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° Π»Π΅ΠΆΠΈΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ
void far setactivepage (int page);
Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ, Π½ΠΎ Π·Π°ΡΠΎ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·Π°Π½Π° Π΅Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠ°ΠΊ ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅.
Π‘ΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ (ΠΈ ΡΠΊΡΠ°Π½ Π΄ΠΈΡΠΏΠ»Π΅Ρ) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ (ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ). ΠΠ° ΡΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠΎΡΠ΅ΠΊ Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ X, Y. ΠΠ°ΡΠ°Π»ΠΎ ΡΠΈΡΡΠ΅ΠΌΡ Π»Π΅ΠΆΠΈΡ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ (ΡΠΊΡΠ°Π½Π°). ΠΡΡ X ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π²Π΅ΡΡ Π½Π΅ΠΌΡ ΠΊΡΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, Π° ΠΎΡΡ Y — ΠΏΠΎ Π»Π΅Π²ΠΎΠΌΡ ΠΊΡΠ°Ρ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. ΠΠ΅Π²Π°Ρ Π²Π΅ΡΡ Π½ΡΡ ΡΠΎΡΠΊΠ° ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ (0, 0), ΠΏΡΠ°Π²Π°Ρ Π½ΠΈΠΆΠ½ΡΡ — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ (M-1, N-1), Π³Π΄Π΅ M ΠΈ N — ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΎΡΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
int far getmaxx (void);
int far getmaxy (void);
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, Π·Π°Π²ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ initgraph ΠΈΠ»ΠΈ setgraphmode.
Π ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΊΡΠΎΠΌΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π΄Π²ΡΠΌΠ΅ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ°. ΠΠ½ΡΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΎΡΠ΅ΠΊ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ΄Π΅Π»Π΅Π½ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ (viewport). ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΡΠΎΡΠ΅ΠΊ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠ°ΡΠ°Π»ΠΎ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π° ΠΎΡΠΈ X ΠΈ Y ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΡΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΡ. Π‘Π°ΠΌΠΎ ΠΎΠΊΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΠΊΡΠ°Π½Π°. ΠΠ°ΠΌΠ΅Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΎΠΊΠ½Π°.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠ΅ΠΊ, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΌΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΠΎΠΊΠ½Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ (ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΠΊΠ½Π°) ΠΈΠΌΠ΅Π΅ΡΡΡ Π² Π²ΠΈΠ΄Ρ.
ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ initgraph ΠΈ setgraphmode ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌ ΡΠΎ Π²ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void far setviewport (int left.int top, int right, int bottom, int clip);
ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° — ΡΡΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΈ ΠΏΡΠ°Π²ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π³ΡΠ°Π½ΠΈΡ ΠΎΠΊΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅ΠΆΠ°ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ: Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Π½ΡΠ»Π΅Π²ΠΎΠΉ, ΡΠΎ Π²ΡΡΠΊΠΈΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅Π·Π°ΡΡΡΡ Π½Π° Π³ΡΠ°Π½ΠΈΡΠ°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΡΠ»ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΡΠΈΠΈ setviewport Π±ΡΠ»ΠΈ Π½Π΅Π²Π΅ΡΠ½ΠΎ Π·Π°Π΄Π°Π½Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ graphresult Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ -11 ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π€ΡΠ½ΠΊΡΠΈΡ setviewport Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ
void far getviewsettings (struct viewporttype far *viewport);
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° Π² ΡΡΡΡΠΊΡΡΡΡ *viewport. Π’ΠΈΠΏ ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΡΠ°ΠΉΠ»Π΅ graphics. h:
struct viewporttype
{
int left, top, right, bottom;
int clip;
}
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΡΡΠ°-Π½ΠΈΡΡ.
Π‘ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ ΡΠ²ΡΠ·Π°Π½ΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ CP (current graphics position). ΠΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΠΊΡΡΡΠΎΡΠ° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π’Π΅ΠΊΡΡΠ°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ°ΠΌΠ° ΡΠΎΠ±ΠΎΠΉ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΈΠ»ΠΈ Π²ΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ².
ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠ΅ΠΊΡΡΠ°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π΅Π³ΠΎ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠ»Ρ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void far moveto (int x, int y);
void far moverel (int dx, int dy);
ΠΠ΅ΡΠ²Π°Ρ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ CP ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ CP Π½Π° Π²Π΅ΠΊΡΠΎΡ (dx, dy).
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
int far getx (void);
int far gety (void);
ΠΡΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ setviewport ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ»Ρ ΠΎΡΠΈΡΡΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
void far clearviewport (void);
CP ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
ΠΠΎΡ ΠΎΠΆΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ
void far cleardevice (void);
ΠΎΡΠΈΡΠ°Π΅Ρ Π²ΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π° CP ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π΅Π³ΠΎ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
ΠΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°Ρ ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠ²Π΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡΠΌΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, Π²ΡΡΡΠ½ΡΡΠΎΠ³ΠΎ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ. ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ ΡΡΡΠ°Π½ΠΈΡΠ° Π²ΠΈΠ΄Π΅ΠΎΠ±ΡΡΠ΅ΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° Π²Π΅ΡΡ ΡΠΊΡΠ°Π½, Π° ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΈ ΡΠΊΡΠ°Π½Π° ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ (ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ — ΠΌΠΎΠ½ΠΈΡΠΎΡΡ Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ VGA, Π³Π΄Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ 640×480 ΡΠΎΡΠ΅ΠΊ Π²ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠ΅). Π’Π°ΠΊΠΎΠ΅ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π°Π½ΠΈΠ·ΠΎΡΡΠΎΠΏΠ½ΠΎΡΡΠΈ ΡΠ°ΡΡΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ: Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΡΠ΅Π·ΠΊΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΡΡΠ΅Π·ΠΊΠΈ ΡΠ°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΈΡ Π΄ΡΠ³ΠΈ ΡΠΈΡΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ (aspect ratio), ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΠΉ «ΡΡΠ΅ΠΏΠ΅Π½Ρ Π½Π΅ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΡΡΠΈ» ΠΏΠΈΠΊΡΠ΅Π»Ρ. Π§ΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΏΠΎ Π΅Π³ΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π°ΠΌ. ΠΡΡΠΈΠ½Π½ΡΠ΅ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΈ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΈΡΠΏΠ»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void far getaspectratio (int far *x_asp, int far *y_asp);
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ²ΠΎΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠΊΠΎΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΠ΅ΠΌ *y_asp Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ 10 000, Π° Π²Π΅Π»ΠΈΡΠΈΠ½Π° *x_asp? *y_asp. ΠΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ *x_asp ΠΊ *y_asp ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»Ρ. Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΎΡΡΠ΅Π·ΠΊΠΎΠΌ Π΄Π»ΠΈΠ½ΠΎΠΉ X ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΡΠΎ Π΄Π»ΠΈΠ½Π° Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°Π²Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
Y = (int)(X β’ (float)(*x_asp) / (*y_asp)).
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ «Π½Π΅ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΡΡΠΈ» Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΡΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΈΡ Π΄ΡΠ³ΠΈ, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π»ΠΈΠΏΡΠΎΠ² ΠΈ ΠΈΡ Π΄ΡΠ³.
1.4. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠΌ
Π¦Π²Π΅ΡΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Borland C ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° — Π·Π°ΠΊΠΎΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΡΠ°Π²ΠΈΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠΎΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅.
ΠΠ°Π»ΠΈΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ (Π²Ρ ΠΎΠ΄ΠΎΠ²), ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄Π»Ρ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π‘ΡΡΠΎΠΊΠΈ ΠΏΠ°Π»ΠΈΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π½ΡΠΌΠ΅ΡΡΡΡΡΡ ΠΎΡ Π½ΡΠ»Ρ Π΄ΠΎ N_palette-1. Π ΡΡΡΠΎΠΊΠ΅ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ k ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΊΠΎΠ΄ ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΡΡΠ° Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π²ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π²Π½Ρ k. ΠΡΠ»Π΅Π²ΠΎΠΉ Π²Ρ ΠΎΠ΄ ΠΏΠ°Π»ΠΈΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° ΡΠΊΡΠ°Π½Π°.
ΠΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΡΡΠΈ Π³ΡΡΠΏΠΏΡ:
Β· ΠΌΠΎΠ½ΠΎΡ ΡΠΎΠΌΠ½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄Π²ΡΡ ΡΠ²Π΅ΡΠΎΠ² — ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ. ΠΠ°Π»ΠΈΡΡΡ ΡΠ°ΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ;
Β· ΡΠ²Π΅ΡΠ½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ. ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°Π»ΠΈΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π½ΡΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ;
Β· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ (Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ) ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ΄ ΡΠ²Π΅ΡΠ° ΠΏΠΎ Π»ΡΠ±ΠΎΠΌΡ Π²Ρ ΠΎΠ΄Ρ ΠΏΠ°Π»ΠΈΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°. Π Π΄Π°Π½Π½ΡΠΌ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠ΅ΠΆΠΈΠΌΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² EGA, VGA, IBM8514.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ Π² Borland C Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ — ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π½Π° Π²ΡΠ΅Ρ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°Ρ , ΠΊΡΠΎΠΌΠ΅ VGA ΠΈ IBM8514, ΠΎΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄Ρ ΡΠ²Π΅ΡΠΎΠ² ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΡΠ²Π΅ΡΠΎΠ² Π°Π΄Π°ΠΏΡΠ΅ΡΠ°. Π ΠΎΠ»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ VGA Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½Π°Ρ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π½ΠΈΠΆΠ΅. ΠΡΠ°ΠΉΠ²Π΅Ρ IMB8514 Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²ΡΠ΅, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡΡ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ, Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΡΠΎΠΌΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ. ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ (ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°) Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌΠ° Ρ Π·Π°ΠΊΠΎΠ½ΠΎΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² ΡΠ²Π΅Ρ.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΠ΄:
#define MAXCOLOR 15
struct palettetype
{
unsigned char size;
signed char colors[MAX_COLORS+1];
};
Π³Π΄Π΅ size — ΡΡΠΎ ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΠΎΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π° colors — ΠΌΠ°ΡΡΠΈΠ² Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΡΠ²Π΅ΡΠ°.
ΠΠ»Ρ Π²ΡΠ΅Ρ ΠΌΠΎΠ½ΠΎΡ ΡΠΎΠΌΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΈ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΠ°Π»ΠΈΡΡΠ°ΠΌΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΠ΅ 16 ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ²Π΅Ρ ΠΏΠ°Π»ΠΈΡΡΡ ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ ΠΎΡ 0 Π΄ΠΎ 15. ΠΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° colors ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π΅Π³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ.
Π ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°Π»ΠΈΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 16 ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΠ΄Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ Π»Π΅ΠΆΠ°ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 63
(Ρ. Π΅. ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ). ΠΠ»Ρ 16 ΠΊΠΎΠ΄ΠΎΠ² ΡΠ²Π΅ΡΠΎΠ² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² (ΠΊΠ°ΠΊ Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° EGA, ΡΠ°ΠΊ ΠΈ VGA), ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠΉ ΡΠΈΠΏ EGA_COLORS, Ρ. Π΅. ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΡΠ²Π΅ΡΠΎΠ² ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°:
enum EGA_COLORS
{
EGA_BLACK=0, EGA_BLUE=1, EGA_GREEN=2, EGA_CYAN=3, EGA_RED=4, EGA_MAGENTA=5, EGA_BROWN=20, EGA_LIGHTGRAY=7, EGA_DARKGRAY=56, EGA_LIGHTBLUE=57, EGA_LIGHTGREEN=58, ΠGA_LIGHTCYAN=59, EGA_LIGHTRED=60, EGA_LIGHTMAGENTA=61, EGA_YELLOW=62, EGA_WHITE=63
};
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΊ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
int far getpalettesize (void);
ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ²Π΅ΡΠΎΠ² Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
int far getmaxcolor (void);
ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ setpalette ΠΈΠ»ΠΈ setallpalette. ΠΠ΅ΡΠ²Π°Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π° ΠΏΠ°Π»ΠΈΡΡΡ, Π° Π²ΡΠΎΡΠ°Ρ Π²ΡΠ΅Ρ ΡΡΠ°Π·Ρ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
void far setpalette (int num_color_pallete, int num_color);
ΠΡΠ³ΡΠΌΠ΅Π½Ρ num_color_palette Π·Π°Π΄Π°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»Π΅ΠΆΠ°ΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΡ Π½ΡΠ»Ρ Π΄ΠΎ size-1 (size — ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ palettetype). ΠΡΠ³ΡΠΌΠ΅Π½Ρ color Π·Π°Π΄Π°Π΅Ρ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π° Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 63 (ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡ ΠΌΠ»Π°Π΄ΡΠΈΡ Π±ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° num_color).
ΠΡΡΠ³Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠ°Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ, ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
void far setallpalette (struct palettetype far *palette);
ΠΡΠ³ΡΠΌΠ΅Π½Ρ Π΅Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π²Π°-ΡΠΈΠ°Π½Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ. ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΠ΅, ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ setpalette ΠΈ setallpalette Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ.
Π¦Π²Π΅ΡΠΎΠΌ ΡΠΎΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void far setbkcolor (int num_color_palette);
ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π²Ρ ΠΎΠ΄ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎ Π²Ρ ΠΎΠ΄ΠΎΠΌ, ΠΈΠΌΠ΅ΡΡΠΈΠΌ Π½ΠΎΠΌΠ΅Ρ num_color_palette. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ num_color_palette. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ num_color_palette Π±ΡΠ΄ΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ setpalette (0, color) ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°, Π½ΠΎ Π½Π΅ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π²Ρ ΠΎΠ΄ Π½ΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌ Π΄ΡΡΠ³ΠΈΠΌ.
ΠΠ±ΡΠ°ΡΠ½ΠΎΠΉ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²Π΅ΡΠ° ΡΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
int far getbkcolor (void);
ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°, Ρ. Π΅. Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ²ΡΠ·Π°Π½ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π²Ρ ΠΎΠ΄. ΠΡΠ»ΠΈ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ setbkcolor Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π½ΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌ Π²Ρ ΠΎΠ΄ΠΎΠΌ, ΡΠΎ getbkcolor Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 0.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
void far getpalette (struct palettetype far *palette);
struct palettetype far *getdefaultpalette (void);
ΠΠ΅ΡΠ²Π°Ρ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π² ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ. ΠΡΡΠ³Π°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Ρ ΡΠ°Π½ΡΡΡΡΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΡΠ°Π»ΠΎΠ½ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ. ΠΠΎΠ»ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΌ ΡΡΠ°Π»ΠΎΠ½ ΠΏΠ°Π»ΠΈΡΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°.
ΠΡΠ΅ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° Π°Π΄Π°ΠΏΡΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠΌΡ Π±ΠΈΡΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π΄Π°ΠΏΡΠ΅ΡΡ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ Π²ΠΎΡΡΠΌΠΈΠ±ΠΈΡΠΎΠ²ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Ρ (IBM8414 ΠΈ VGA, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠ²Π΅ΡΠΎΠ² 256 Π²Ρ ΠΎΠ΄ΠΎΠ²). ΠΠ»Ρ Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΠΏΠ°Π»ΠΈΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 256 Π²Ρ ΠΎΠ΄ΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ Π²Ρ ΠΎΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ΄Ρ ΡΠ²Π΅ΡΠ°. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π» Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΡΠ΅Π½ΠΎΠΊ ΡΠ²Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
void far setrgbpalette (int num_color, int red, int green, int blue);
ΠΡΠ³ΡΠΌΠ΅Π½Ρ num_color — Π½ΠΎΠΌΠ΅Ρ Π²Ρ ΠΎΠ΄Π° ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ (0−255), ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Ρ ΡΠ°Π½ΡΡΡΡ ΡΡΠΈ ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ — ΠΊΡΠ°ΡΠ½Π°Ρ, Π·Π΅Π»Π΅Π½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ — ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΠ²Π΅Ρ. Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎ Π²Ρ ΠΎΠ΄Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ color ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ red, green ΠΈ blue. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠ΅ ΡΠ΅ΡΡΡ Π±Π°ΠΉΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΎΡΡΠ΅Π½ΠΊΠΎΠ² ΡΠ°Π²Π½ΠΎ N_colors=64*64*64=256Π.
ΠΡΠΌΠ΅ΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° VGA. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° colors (ΠΊΠΎΠ΄ΠΎΠ² ΡΠ²Π΅ΡΠΎΠ²) ΠΎΠ±ΡΡΠ½ΠΎΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ ΡΠ»ΡΠΆΠ°Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° Π² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΎΡΠΊΡΠ΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ±ΠΎΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π½ΠΊΠ° ΡΠ²Π΅ΡΠ°.
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ setrgbpalette ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΠΌΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ VGA ΠΈ IBM8514. ΠΠ° Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ ΠΠ ΠΎΠ½Π° ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ. ΠΡΡΠ°ΡΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ°Π»ΠΈΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ IBM8514 ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ setrgbpalette.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ° (current drawing color). Π ΠΈΡΡΡΡΠΈΠΉ ΡΠ²Π΅Ρ — ΡΡΠΎ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ° Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ getmaxcolor.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠ²Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ°:
void far setcolor (int num_color_palette);
ΠΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ²Π΅Ρ, ΡΠ΅ΠΉ ΠΊΠΎΠ΄ Π·Π°ΠΏΠΈΡΠ°Π½ ΠΏΠΎ Π²Ρ ΠΎΠ΄Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ num_color_palette. Π£Π·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
int far getcolor (void);
1.5. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΎΠ±ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ±ΡΡΠ΅ΡΠΎΠΌ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°.
ΠΠΎΡΡΡΠΏ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
unsigned far getpixel (int x, int y);
void far putpixel (int x, int y, int num_color_palette);
Π€ΡΠ½ΠΊΡΠΈΡ getpixel Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π°ΡΡΠΈΠ±ΡΡ (Π²Ρ ΠΎΠ΄ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ) ΠΏΠΈΠΊΡΠ΅Π»Ρ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (x, y). Π ΡΡΠ½ΠΊΡΠΈΡ putpixel ΡΠΈΡΡΠ΅Ρ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² ΡΠΎΡΠΊΠ΅ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (x, y) ΡΠ²Π΅ΡΠΎΠΌ, ΡΠ΅ΠΉ ΠΊΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΏΠΎ Π²Ρ ΠΎΠ΄Ρ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ num_color_palette.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌ getpixel ΠΈ pupixel ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π·Π°Π΄Π°ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ, Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ Π²Π½Π΅ ΠΎΠΊΠ½Π°. ΠΡΠΈ ΡΡΠΎΠΌ getpixel Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ. ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ putpixel Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ setviewport. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ getpixel ΠΈ pupixel Ρ Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠΌΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΡΠΎΡΠ΅ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡ.
ΠΡΠΎΠΌΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠ΅Π»ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. ΠΡΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌ ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΠ±ΠΌΠ΅Π½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΡΠ²ΠΎΠΈΡ ΡΠ³Π»ΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ
unsigned far imagesize (int left, int top, int right, int bottom);
ΠΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ³Π»Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ 64Π-1, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0xFFFF, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ graphresult Π²ΡΠ΄Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -11.
ΠΠΎΡΠ»Π΅ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
void far getimage (int left, int top, int right, int bottom, void far *bitmap);
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ — ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ².
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ getimage, ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΠΈΡΠ°ΡΡ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ
void far putimage (int left, int top, void far *bitmap, int op);
ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ (ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π°), Π½ΠΎ ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π½Π° Π΄ΡΡΠ³ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π² Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ setactivepage. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ putimage ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΌ Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΌΠ°ΡΡΠΈΠ²Π°, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π±ΡΠ΄ΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠ±ΡΡΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° op = 0, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ±ΡΡΠ΅ΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ°ΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠΌ ΡΠΈΠΏΠΎΠΌ putimage_ops:
enum putimage_ops
{COPY_PUT, XOR_PUT, OR_PUT, AND_PUT, NOT_PUT};
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ getimage ΠΈ putimage Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΡΡΠΎ ΠΈ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ getpixel ΠΈ putpixel: Ρ ΠΎΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π·Π°Π΄Π°ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ. Π Π°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ getimage «ΡΡ Π²Π°ΡΠΈΡ» ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ², Π° ΡΡΠ½ΠΊΡΠΈΡ putimage Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ (Ρ. Π΅. ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ).
ΠΡΠ»ΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ (Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΡ) Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ getimage ΠΈ putimage Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ.
1.6. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² — ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π£ΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π²ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΏΠΎ ΡΠΈΠΏΡ ΡΠΈΡΡΠ΅ΠΌΡΡ ΠΈΠΌΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ: ΠΊΠΎΠ½ΡΡΡΠ½ΡΠ΅ ΠΈ ΠΏΠ»ΠΎΡΠ°Π΄Π½ΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΡΠΈΡΡΡΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³ΡΡ Ρ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ.
Π Π³ΡΡΠΏΠΏΠ΅ ΠΊΠΎΠ½ΡΡΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
void far line (int x1, int y1, int x2, int y2);
void far linerel (int dx, int dy);
void far lineto (int x, int y);
void far rectangle (int left, int top, int right, intbottom);
void far drawpoly (int num_points, int far *poly_points);
void far circle (int x, int y, int radius);
void far arc (int x, int y, int start_angle, int end_angle, int radius);
void far ellipse (int x, int y, int start_angle, int end_angle, int x_radius, int y_radius);
ΠΠ΅ΡΠ²ΡΠ΅ ΠΏΡΡΡ ΡΠΈΡΡΡΡ ΠΊΡΡΠΎΡΠ½ΠΎ-Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΠΈΠ³ΡΡΡ, ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΏΡΡΠΌΡΡ ), ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ — ΠΊΡΠΈΠ²ΡΠ΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° (Π΄ΡΠ³ΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠ»Π»ΠΈΠΏΡΠΎΠ²).
Π€ΡΠ½ΠΊΡΠΈΠΈ line, linerel ΠΈ lineto ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡ Π΄Π²Π΅ ΡΠΎΡΠΊΠΈ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ ΠΎΡΡΠ΅Π·ΠΊΠΎΠΌ ΠΏΡΡΠΌΠΎΠΉ. ΠΠ»Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΎΠ±Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΠ΅ ΡΠΎΡΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ²Π½ΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΈ linerel ΠΈ lineto Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅ΠΊΡΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ CP, Π° Π²ΡΠΎΡΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠΌ moverel ΠΈ moveto, Ρ. Π΅. ΡΠ΅ΡΠ΅Π· ΠΏΡΠΈΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΠ²Π½ΠΎΠΌΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ. ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»ΡΠ±ΡΡ ΡΠΎΡΠ΅ΠΊ, Π΄Π°ΠΆΠ΅ Π»Π΅ΠΆΠ°ΡΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. Π€ΡΠ½ΠΊΡΠΈΡ graphresult Π½Π΅ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π° ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ Π»ΠΈΠ½ΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΡΠ»ΠΈ Π΄Π»Ρ ΠΎΠΊΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΡΠ°ΡΡΠΈ Π»ΠΈΠ½ΠΈΠΈ, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΠΊΠ½Π°, Π½Π΅ Π·Π°Π½ΠΎΡΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ rectangle ΡΠΈΡΡΠ΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠ½ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ³Π»Π°.
Π€ΡΠ½ΠΊΡΠΈΡ drawpoly ΡΠΈΡΡΠ΅Ρ Π»ΠΎΠΌΠ°Π½ΡΡ Π»ΠΈΠ½ΠΈΡ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ ΡΠΎΡΠΊΠΈ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΈΡ ΡΠΎΡΠ΅ΠΊ, Π° Π²ΡΠΎΡΠΎΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π». ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΡΠ° ΡΠΈΡΠ΅Π» ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ (x, y) ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΌΠΊΠ½ΡΡΡΡ Π»ΠΎΠΌΠ°Π½ΡΡ Π»ΠΈΠ½ΠΈΡ (ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ), ΠΏΠ΅ΡΠ²Π°Ρ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ circle ΡΠΈΡΡΠ΅Ρ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ ΡΠ°Π΄ΠΈΡΡΠΎΠΌ radius Ρ ΡΠ΅Π½ΡΡΠΎΠΌ Π² ΡΠΎΡΠΊΠ΅ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (x, y). Π€ΡΠ½ΠΊΡΠΈΡ arc ΠΈ ellipse Π²ΡΡΠ΅ΡΡΠΈΠ²Π°ΡΡ Π΄ΡΠ³ΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ»Π»ΠΈΠΏΡΠ° Ρ ΡΠ΅Π½ΡΡΠΎΠΌ Π² ΡΠΎΡΠΊΠ΅ (x, y), ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΡΠ³Π»Π°ΠΌΠΈ start_angle ΠΈ end_engle. ΠΠ»Ρ Π΄ΡΠ³ΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ Π·Π°Π΄Π°Π΅ΡΡΡ Π΅Π΅ ΡΠ°Π΄ΠΈΡΡ radius, Π° Π΄Π»Ρ Π΄ΡΠ³ΠΈ ΡΠ»Π»ΠΈΠΏΡΠ° ΡΠ°Π΄ΠΈΡΡΡ ΠΏΠΎ ΠΎΡΡΠΌ x_radius ΠΈ y_radius. ΠΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ° Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΡΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΡ.
Π£Π³Π»Ρ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΠ΅ Π΄ΡΠ³ΠΈ, Π²ΡΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π³ΡΠ°Π΄ΡΡΠ°Ρ ΠΈ ΠΎΡΠΌΠ΅ΡΡΡΡΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ ΠΎΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΡΡΡ X ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠ³Π° Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΡ ΡΠ³Π»Π° start_angle ΠΊ ΡΠ³Π»Ρ end_angle ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ.
ΠΠ»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ rectangle, drawpoly, circle, arc ΠΈ ellipse ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²Ρ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ.
Π‘ Π΄ΡΠ³Π°ΠΌΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ²ΡΠ·Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ
void far getarccoords (struct arccoordstype far *arccoords);
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π΄ΡΠ³ΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ arc. Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π΄ΡΠ³ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ *arccoords. Π’ΠΈΠΏ ΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ:
struct arccoordstype
{
int x, y;
int x_start, y_start, x_end, y_end;
};
ΠΠ΅ΡΠ²Π°Ρ ΠΏΠ°ΡΠ° ΡΠΈΡΠ΅Π» — ΡΡΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π½ΡΡΠ° ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ, Π²ΡΠΎΡΠ°Ρ ΠΈ ΡΡΠ΅ΡΡΡ — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π°ΡΠ°Π»Π° ΠΈ ΠΊΠΎΠ½ΡΠ° Π΄ΡΠ³ΠΈ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ»ΡΠΈΠ½Ρ ΠΈ ΡΠΈΠΏ Π»ΠΈΠ½ΠΈΠΈ, ΡΠ²Π΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅.
ΠΡΠ΅ ΠΊΠΎΠ½ΡΡΡΠ½ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΡΠΈΡΡΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ setcolor.
ΠΠ»Ρ ΠΊΡΡΠΎΡΠ½ΠΎ-Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ², ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½ΠΈΡ , ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΌ ΠΊΠΎΠ΄ ΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΌΠ΅ΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ΄Π΅ΡΡ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ putimage. ΠΡΠ±ΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
void far setwritemode (int mode);
ΠΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0 (ΠΏΡΠΎΡΡΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡ) ΠΈ 1 (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ «ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ΅Π΅ ΠΈΠ»ΠΈ»).
Π€ΡΠ½ΠΊΡΠΈΡ
void far setlinestyle (int line_style, unsigned user_pattern, int thickness);
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ ΠΈ ΡΠΎΠ»ΡΠΈΠ½Ρ Π»ΠΈΠ½ΠΈΠΉ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠ³ΡΠΌΠ΅Π½Ρ thickness Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° ΠΊΠΎΠ½ΡΡΡΠ½ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ, Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ line_style ΠΈ user_pattern — ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΊΡΡΠΎΡΠ½ΠΎ-Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠ΅.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ thickness ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ NORM_WIDTH (ΡΠΎΠ»ΡΠΈΠ½Π° ΡΠ°Π²Π½Π° 1 ΠΏΠΈΠΊΡΠ΅Π»Ρ) ΠΈ THICK_WIDTH (ΡΠΎΠ»ΡΠΈΠ½Π° ΡΠ°Π²Π½Π° 3 ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌ). ΠΡΠ³ΡΠΌΠ΅Π½Ρ linestyle Π·Π°Π΄Π°Π΅Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° line_styles (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ SOLID_LINE ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΏΠ»ΠΎΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΡ):
enum line_styles
{
SOLID_LINE=0,DOTTED_LINE, CENTER_LINE,
DASHED_LINE, USERBIT_LINE
};
ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° line_style ΡΠ°Π²Π½ΠΎ USERBIT_LINE, ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΊΡΡΠΎΡΠ½ΠΎ-Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ setlinestyle ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° user_pattern. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠΉΡΡ ΡΠΈΡΡΠ½ΠΎΠΊ Π»ΠΈΠ½ΠΈΠΈ Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΎΠΌ Π΄ΠΎ 16 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. ΠΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π±ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° user_pattern ΡΠ°Π²Π΅Π½ 1, ΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π»ΠΈΠ½ΠΈΠΈ ΡΠΈΡΡΠ΅ΡΡΡ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ — Π½Π΅Ρ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ setlinestyle, ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π΄ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΅Π΅ Π²ΡΠ·ΠΎΠ²Π°. ΠΠ»Ρ Π²ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ Π»ΠΈΠ½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ
void far getlinesettingstype (struct linesettingstype far *line_info);
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π½ΠΎΡΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΡΡΡΠΊΡΡΡΡ, ΠΈΠΌΠ΅ΡΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
struct linesettingstype
{
int linestyle;
unsigned upattern;
int thickness;
}
ΠΡΡΠΏΠΏΠ° ΠΏΠ»ΠΎΡΠ°Π΄Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΎΡΠΎΡΠΈΠΏΡ:
void far bar (int left, int top, int right, int bottom);
void far bar3d (int left, int top, int right, int bottom, int depth, int top_flag);
void far fillpoly (int num_points, int far *poly_points);
void far fillellipse (int x, int y, int x_radius, int y_radius);
void far pieslice (int x, int y, int start_angle, int end_angle, int radius);
void far sector (int x, int y, int start_angle, int end_angle, int x_ radius, int y_radius);
void far floodfill (int x, int y, int num_color_palette);
Π€ΡΠ½ΠΊΡΠΈΠΈ bar ΠΈ bar3d ΡΡΡΠΎΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Π½Ρ ΠΏΠ΅ΡΠ²ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ. Π€ΡΠ½ΠΊΡΠΈΡ bar Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ½ΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°, Π° ΡΡΠ½ΠΊΡΠΈΡ bar3d Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΠΌΠ»ΡΠ΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΠΊΠΎΠ½ΡΡΡΠ° ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠΎΠ½ΡΡΡΠΎΠΌ Π΄ΠΎΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»Π΅ΠΏΠΈΠΏΠ΅Π΄Π°, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π±Π°Π·Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. ΠΠ»ΡΠ±ΠΈΠ½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΠΈ Π·Π°Π΄Π°Π΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ depth, Π°ΡΠ³ΡΠΌΠ΅Π½Ρ top_flag ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΈΡΠΎΠ²Π°ΡΡ (Π΅ΡΠ»ΠΈ Π½Π΅ Π½ΡΠ»Ρ) ΠΈΠ»ΠΈ Π½Π΅ ΡΠΈΡΠΎΠ²Π°ΡΡ (Π΅ΡΠ»ΠΈ Π½ΡΠ»Ρ) Π²Π΅ΡΡ Π½ΠΈΠ΅ ΡΠ΅Π±ΡΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»Π΅ΠΏΠΈΠΏΠ΅Π΄Π°.
Π€ΡΠ½ΠΊΡΠΈΡ fillpoly ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ drawpoly, ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ drawpoly Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π½Π΅Π·Π°ΠΌΠΊΠ½ΡΡΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ fillpoly Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΎΡΠΊΡ Π² ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΌΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΡΡ.
Π€ΡΠ½ΠΊΡΠΈΡ fillellipse Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»Π»ΠΈΠΏΡ Ρ ΡΠ΅Π½ΡΡΠΎΠΌ Π² ΡΠΎΡΠΊΠ΅ (x, y) ΠΈ ΡΠ°Π΄ΠΈΡΡΠ°ΠΌΠΈ x_radius ΠΈ y_radius. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½Π° ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡ ΡΠ»Π»ΠΈΠΏΡΠ°.
Π€ΡΠ½ΠΊΡΠΈΠΈ pieslice ΠΈ sector ΠΏΠΎΡ ΠΎΠΆΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ±Π΅ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΠΎΡΠ°, ΡΠΎΠ»ΡΠΊΠΎ pieslice Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π΄Π»Ρ ΠΊΡΡΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΠΎΡΠ°, Π° sector Π΄Π»Ρ ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ, ΡΠ΅ ΠΆΠ΅, ΡΡΠΎ ΠΈ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ arc ΠΈ ellipse ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΠΎΡ Π·Π°ΠΊΡΠ°ΡΠ΅Π½, ΡΠΈΡΡΠ΅ΡΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ arc ΠΈ ellipse, ΡΡΠ½ΠΊΡΠΈΠΈ pieslice ΠΈ sector ΡΡΡΠΎΡΡ ΡΠ΅ΠΊΡΠΎΡ ΠΎΡ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ³Π»Π° ΠΊ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ (Π° Π½Π΅ ΠΎΡ start_angle ΠΊ end_angle). ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ pieslice ΠΈ sector ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅ΠΊΡΠΎΡ, ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈ X.
Π€ΡΠ½ΠΊΡΠΈΡ floodfill ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΊΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΡΡ Π±ΡΠ» Π·Π°ΠΌΠΊΠ½ΡΡ ΠΈ ΡΠΎΡΡΠΎΡΠ» ΠΈΠ· ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΠΈΠΌΠ΅ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ°, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ num_color_palette (Π½ΠΎΠΌΠ΅Ρ Π²Ρ ΠΎΠ΄Π° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°Π»ΠΈΡΡΡ). ΠΡΠΎΠΌΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠΎΠ½ΡΡΡΠ°, ΡΡΠ½ΠΊΡΠΈΡ floodfill ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΡΠΊΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΡΠ° ΡΠΎΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΠ°.
ΠΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ setcolor. ΠΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ»ΡΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ) ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΡΠ½ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ².
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΈΠ΄ΠΎΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ»ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ
void far setfillstyle (int pattern, int num_color_palette);
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΈΠΏ Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠ΄ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π½ΠΎΠΌΠ΅Ρ Π²Ρ ΠΎΠ΄Π° Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ). ΠΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Ρ. Π΅. Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π°ΡΡΠΈΠ±ΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΡΠ³ΡΠΌΠ΅Π½Ρ pattern ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΈΠΏ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠΌ ΡΠΈΠΏΠΎΠΌ fill_patterns:
enum fill_pattern
{
EMPTY_FILL=0,SOLID_FILL, LINE_FILL, LTSLASH_FILL,
SLASH_FILL, BKSLASH_FILL, LTBKSLASH_FILL,
HATCH_FILL, XHATCH_FILL, INTERLEAVE_FILL,
WIDE_DOT_FILL, CLOSE_DOT_FILL, USER_FILL
};
ΠΡΠ³ΡΠΌΠ΅Π½Ρ pattern ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π»ΡΠ±ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ USER_FILL. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ getfillsettings (ΡΠΌ. Π΄Π°Π»Π΅Π΅).
Π¨Π°Π±Π»ΠΎΠ½ ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 8×8 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0 ΠΈΠ»ΠΈ 1. ΠΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ°Π²Π΅Π½ 1, ΡΠΎ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ num_color_palette, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π°ΡΡΠΈΠ±ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎΠ»ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠΎΠ½Π°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
void far setfillpattern (char far *user_pattern, int num_color_palette);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ user_pattern ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΠ±Π»Π°ΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΠ°ΠΊΠΎΠΌΡ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ setfillstyle. ΠΠ°Π½Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΠΎΡΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ Π±Π°ΠΉΡΠΎΠ², ΡΠ΅ΠΏΠΎΡΠΊΠ° Π±ΠΈΡΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Π°.
ΠΠ»ΠΎΡΠ°Π΄Π½ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ setfillstyle ΠΈΠ»ΠΈ setfillpatern. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ
void far getfillsettings (struct fillsettingstype far *fill_info);
void far getfillpattern (char far *user_pattern);
ΠΠ΅ΡΠ²Π°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ fill_info ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π°Π½ΠΎΡΠΈΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°:
struct fillsettingstype
{
int pattern;
int color;
};
ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΡΡΠΊΡΡΡΡ pattern ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠΏ ΡΠ°Π±Π»ΠΎΠ½Π° (Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ°Π²Π΅Π½ USER_FILL, ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠ°Π±Π»ΠΎΠ½ Π·Π°Π΄Π°Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ), ΡΠ»Π΅ΠΌΠ΅Π½Ρ color ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π½ΠΎΠΌΠ΅Ρ Π²Ρ ΠΎΠ΄Π° Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ). ΠΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΌΡ Π΅ΠΉ Π°Π΄ΡΠ΅ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Π°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ.
1.7. ΠΡΠ²ΠΎΠ΄ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠΈΡΡΠΎΠ².
Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌΠΈ ΡΡΠΈΡΡΠ°ΠΌΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ settextstyle.
Π Borland C ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ Π΄Π²ΡΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΈΡΡΠΎΠ²: ΠΌΠ°ΡΡΠΈΡΠ½ΡΠΌΠΈ (bit-mapped) ΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌΠΈ (stroked). ΠΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΏ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΡΠΈΡΡΠΎΠΌ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ Π² BIOS ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. Π¨ΡΠΈΡΡΠΎΠ² Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ.
ΠΠ°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠΈΡΡΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ 256 Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ASCII-ΠΊΠΎΠ΄Π°. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΡΡΠΈΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ (Π±ΠΈΡΠΎΠ²ΠΎΠΉ ΠΊΠ°ΡΡΡ) ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 8×8 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π²ΡΡΡΠΎΠ΅Π½ Π² BIOS, ΡΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄Π»Ρ Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠΈΠΏ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΈΡΡΠΎΠ² ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠΎΠ½ΠΊΠΈΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΈΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΌΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΡΠ°Π²Π»ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΈ ΠΏΡΡΠΌΡΡ Π»ΠΈΠ½ΠΈΠΉ, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΎΡΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°. Π’Π°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΡΡΠΈΡΡΠΎΠ² ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π² Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ ΡΡΠΈΡΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ .chr. ΠΠ°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠ΅ ΡΡΠΈΡΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ 256-ΡΠΈ ΠΊΠΎΠ΄ΠΎΠ². ΠΠ±ΡΠΈΠΌΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠΈΡΡΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Ρ ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΎΡ 32 Π΄ΠΎ 126. Π Π°Π·Π½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΠΈΡΡΠ° ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΠΈΠ½Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌΡΠΉ ΡΠΈΠΏ font_names, Π·Π°Π΄Π°ΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π΄Π»Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΏΡΡΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΈΡΡΠΎΠ² (ΠΎΠ΄ΠΈΠ½ ΠΌΠ°ΡΡΠΈΡΠ½ΡΠΉ ΠΈ ΡΠ΅ΡΡΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΈΠ· ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°):
enum font_names
{
DEFAULT_FONT=0, TRIPLEX_FONT, SMALL_FONT, SANS_SERIF_FONT, GOTHIC_FONT
};
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΠΊΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° (Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²) ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ