ΠΠΎΠ΄ΡΠ»Ρ Graph Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Turbo Pascal
Π’ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΡΠΆΠ°ΡΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. ΠΠΎΡ ΠΎΠΆΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ «Π²ΡΡΡΠ½ΡΡ» Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΏΡΡΠΌΡΡ ΠΈΠ»ΠΈ ΡΠΎΡΠ΅ΠΊ: ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ»Π»ΠΈΠΏΡ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΎΡΡ ΡΠΊΡΠ°Π½Π° ΠΊ ΡΠΈΡΠΈΠ½Π΅ Π½Π΅ ΡΠ°Π²Π½ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ ΠΊ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ. ΠΠ»Ρ ΡΡΠ΅ΡΠ° ΡΡΠΎΠ³ΠΎ Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²Π° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΎΠ΄ΡΠ»Ρ Graph Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Turbo Pascal (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΎΠ΄ΡΠ»Ρ Graph
ΠΠΎΠ΄ΡΠ»Ρ Graph ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² Π΄ΠΈΡΠΏΠ»Π΅Π΅Π²: CGA, EGA, VGA ΠΈ Ρ. Π΄. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΡΠΈΠ΄Π΅ΡΡΡΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΡ (ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠ΅ΠΊ, Π»ΠΈΠ½ΠΈΠΉ, ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ Ρ. ΠΏ.), ΡΠ°ΠΊ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±Π°Π·ΠΎΠ²ΡΡ (ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠ³ΡΡ, Π²ΡΠ²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΠ° ΠΈ Π΄Ρ.).
Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Graph, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΡΡΠ²Π΅Π½Π½ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ (ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .BGI), Π° Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΅ΡΠ΅ ΠΈ ΡΡΡΠΈΡ ΠΎΠ²ΡΠ΅ ΡΡΠΈΡΡΡ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΌ ΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΡΡΠΈΡΡΠΎΠ² (Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .CHR).
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ GRAPH. TPU (ΠΎΠ½ Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² ΡΠ°ΠΉΠ»Π° TURBO. TPL, Π° ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π°ΡΡ ΠΈΠ²Π΅ BGI. ARC).
Π€Π°ΠΉΠ»Ρ BGI ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Graph
Π€Π°ΠΉΠ» BGI — ΡΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (Borland Graphic Interface) ΡΠΈΡΠΌΡ Borland. ΠΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΠ΅ΡΠ΅Π΄ ΡΠ°Π±ΠΎΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° InitGraph ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΏ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΠ, ΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π² ΠΏΠ°ΠΌΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ BGI-Π΄ΡΠ°ΠΉΠ²Π΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° CloseGraph Π²ΡΠ³ΡΡΠΆΠ°Π΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°. Π ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ ΠΈΠ· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π±Π΅Π· Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° (RestoreCRTMode) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ (SetGraphMode).
ΠΡΠ°ΠΊ, Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ:
CGA.BGI | — Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ IBM CGA, MCGA; | |
EGAVGA.BGI | — Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ IBM EGA, VGA; | |
HERC.BGI | — Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ Hercules; | |
ATT.BGI | — Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΠΠ’&Π’6300 (400 ΡΡΡΠΎΠΊ); | |
PC3270.BGI | — Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ IBM 3270PC; | |
IBM8514.BGI | — Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ IBM 8514. | |
Π’Π°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΡΠΈ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π° Π²ΡΠ΅Ρ ΠΠ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ ΠΠ ΡΠΈΡΠΌΡ IBM. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠ°ΠΊΠ°Ρ Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΡΡΠΎΠΈΡ, ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ», ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ ΠΠ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ Π°Π΄Π°ΠΏΡΠ΅ΡΡ.
ΠΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Graph ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ:
1) Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΠΈ ΠΈΡ Π°Π½Π°Π»ΠΈΠ· (DetectGraph, InitGraph, CloseGraph, GraphDefaults, ClearDevice, InstallUserDriver, RegisterBGIDriver, RestoreCRTMode, SetGraphMode, SetWrifeMode, GetGraphMode, GetModeRange, GetMaxMode, GetModeName, GetDriverName, GraphResuIt, GraphErrorMsg).
2) Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ ΡΠΈΠ³ΡΡ:
a) ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ «ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ» (MoveTo, MoveRel, GetMaxX, GetMaxY, GetX, GetY);
b) ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Line, LineTo, LineRel, Arc, GetArcCoords, Circle, Sector, Ellipse, Rectangle, DrawPoly);
c) ΡΡΠΈΠ»Ρ Π»ΠΈΠ½ΠΈΠΉ ΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (SetLineStyle, GetLineSettings, SetAspeclRatio, GetAspectRatio).
3) Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (SetColor, GetColor, SetBkColor, GetBkColor, GetMaxColor, GetPalette, GetPaletteSize, GetDefaultPalette, SetPalette, SetAllPalette, SetRGBPalette, SetFillStyle, SetFillPattern, GetFillPattern, GetFillSettings, SetGraphBufSize, FillPoly, FillEIIipse, FloodFill, PicSlice, Bar, Bar3D).
4) ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (PutPixel, GetPixel, ImageSize, Getlmage, Putlmage).
5) Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ (SetActivePage, SetVisualPage).
6) ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΊΠ½Π° (Π²ΡΡΠΏΠΎΡΡΡ) (SetViewPort, GetViewSettings, ClearViewPort).
7) Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ° (RegisterBGIFont, lnstallUserFont, OutText, OutTextXY, SetTextStyle, SetTextJustify, SetUserCharSize, GetTextSettings, GetTextHeight, TextWidth).
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π·Π°ΠΊΡΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ InitGraph. ΠΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ°Ρ Π³ΡΠ°ΡΠΈΠΊΡ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π±Π»ΠΎΠΊ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ Π΅Π³ΠΎ Π·Π°ΠΊΡΡΡΠΈΡ. Π’Π°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
InitGraph (VAR GraphDriver; {ΡΠΈΠΏ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°}
VAR GraphMode Integer; {ΡΠ΅ΠΆΠΈΠΌ Π³ΡΠ°ΡΠΈΠΊΠΈ}
DriverPath: String); {ΠΏΡΡΡ ΠΊ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ}
Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ Π²ΠΈΠ΄Π° Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ GraphDriver ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ InitGraph (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π²Π²Π΅Π΄Π΅Π½Π° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ GetModeRange ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ).
Detect | = 0; | { Π°Π²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅} | |
CGA | = 1; | {Π°Π΄Π°ΠΏΡΠ΅Ρ CGA} | |
HCGA | = 2; | {Π°Π΄Π°ΠΏΡΠ΅Ρ MCGA} | |
EGA | = 3; | { Π°Π΄Π°ΠΏΡΠ΅Ρ EGA 256K} | |
EGA64 | = 4; | { Π°Π΄Π°ΠΏΡΠ΅Ρ EGA 64K} | |
EGAMono | = 5; | { EGA Ρ ΠΌΠΎΠ½ΠΎ — Π΄ΠΈΡΠΏΠ»Π΅Π΅ΠΌ} | |
IBM8514 | = 6; | { Π°Π΄Π°ΠΏΡΠ΅Ρ 8514} | |
ΠΠ΅Π³ΡΠΠΎΠΏΠΎ | = 7; | { Π°Π΄Π°ΠΏΡΠ΅Ρ Hercules} | |
ΠTT400 | = 8; | { Π΄Π»Ρ ΠΠΠΠ AT&T} | |
VGA | = 9; | { Π°Π΄Π°ΠΏΡΠ΅Ρ VGA} | |
Π Π‘3270 | = 10; | { Π°Π΄Π°ΠΏΡΠ΅Ρ 3270} | |
CurrentDriver | =-128; | { Π΄Π»Ρ GetModeRange} | |
ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ GraphDriver ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Detect ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΊΠ»ΡΡΠΈΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌ Π°Π²ΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠΈΠΈΡ. ΠΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ BGI-Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ GraphDriver ΠΈ GraphMode ΠΏΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π’Π°ΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΠ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΠ ΠΈΠ»ΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ². ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΠΎΠ»ΡΡΠ°Ρ, ΡΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΡΠ΅Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ GraphDriver ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, ΡΠΎ ΠΈ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, GraphMode, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π½ΠΎΠΌΠ΅Ρ) ΡΠ΅ΠΆΠΈΠΌΠ°, Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ΅.
ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ (ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΏΠ°Π»ΠΈΡΡΠ°, ΡΠ²Π΅Ρ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ Ρ. Π΄.) ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ DriverPath ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ°ΠΉΠ»Ρ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ. ΠΡΠ»ΠΈ Π² Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ «(ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°), ΡΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ DriverPath, Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ BGI-ΡΠ°ΠΉΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΈΠ»ΠΈΡΡ BINOBJ Π² ΡΠ°ΠΉΠ»Ρ ΡΠΈΠΏΠ° .OBJ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½Ρ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π² ΠΠ₯Π-ΡΠ°ΠΉΠ».
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° CloseGraph. ΠΠ»Ρ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π²ΡΠ·ΠΎΠ² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ CloseGraph. ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ½Π° ΠΎΡΠΈΡΠ°Π΅Ρ ΡΠΊΡΠ°Π½, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ Π°Π΄Π°ΠΏΡΠ΅Ρ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈ, Π΅ΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠ³ΡΡΠΆΠ°Π΅Ρ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠ΅ BGI-Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΈ ΡΡΡΠΈΡ ΠΎΠ²ΡΠ΅ ΡΡΠΈΡΡΡ. ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΎΠ·Π²ΡΠ°Ρ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° InitGraph Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ GraphDriver. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ | |
— 2 | ΠΠ΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° | |
— 3 | ΠΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ ΡΠ°ΠΉΠ» Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° | |
— 4 | ΠΡΠΈΠ±ΠΊΠ° Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ (Π² Π΅Π³ΠΎ ΠΊΠΎΠ΄Π΅) | |
— 5 | ΠΠ΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° | |
— 10 | ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° | |
— 15 | ΠΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° | |
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΎ, ΡΠΎ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ GraphDriver Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π½ΠΎΠΌΠ΅Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΡΠ°Π½Ρ.
Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ½ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
GraphResult: Integer
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
Bar Bar3D ClearViewPort CloseGraph DetectGraph DrawPoly FillPoly FloodFill GetGraphMode | ImageSize InitGraph InstallUserDriver InstallUserFont PieStice RegisterBGIdriver RegisterBGIfont SetAllPalette | SetFillPattern SetFillStyle SetGraphBufSize SetGraphMode SetLineStyle SetPalette SetText Justify SetTextStyle | |
Π’Π°Π±Π»ΠΈΡΠ° ΠΊΠΎΠ΄ΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ GraphResult, ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠ° ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ GraphErrorMsg, Ρ.ΠΊ. ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ. ΠΠΎΡΠ»Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° GraphResult ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π΅Π΅ Π²ΡΠ·ΠΎΠ² Π΄Π°ΡΡ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉΠ»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠ»Ρ Π±ΡΡΡΡΠΎΠΉ Π²ΡΠ΄Π°ΡΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ GraphResult Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ Write. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΊΠ°ΠΊ:
GraphErrorMsg (ErrorCode: Integer): String;
ΠΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Graph, ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° | ΠΠΎΠ΄ | Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ | ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΈ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ | |
grOk | No error | ΠΡΠΈΠ±ΠΊΠΈ Π½Π΅Ρ | ||
grNoInitGraph | — 1 | (BGI) Graphics not installed (use InitGraph) | ΠΡΠ°ΡΠΈΠΊΠ° Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° | |
grNotDetected | — 2 | Graphics hardware not detcted | ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ | |
grFileNotFound | — 3 | Device driver file not detected | BGIΡΠ°ΠΉΠ»Π° Π½Π΅Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ | |
grlnvalidDriver | — 4 | Invali device driver file | BGI-ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ | |
grNoLoadMem | — 5 | Not enough memory to load driver | ΠΠ΅Ρ ΠΌΠ΅ΡΡΠ° Π² ΠΠΠ£ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° | |
grNoScanMem | — 6 | Out of memory in scan fill | ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ FillPoly Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ | |
grNoFloodMem | — 7 | Out of memory in flood fill | ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ FloodFill Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ | |
grFontNotFound | — 8 | Font file not found | CHRΡΠ°ΠΉΠ»Π° Π½Π΅Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ | |
grNoFontMem | — 9 | Not enough memory to load font | ΠΠ΅Ρ ΠΌΠ΅ΡΡΠ° Π² ΠΠΠ£ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΠΈΡΡΠ° | |
grlnvalidMode | — 10 | Invalid Graphics mode for selected driver | ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° | |
grError | — 11 | Graphics error | ΠΡΠΈΠ±ΠΊΠ° Π³ΡΠ°ΡΠΈΠΊΠΈ | |
grIOError | — 12 | Graphics I/O error | ΠΡΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π³ΡΠ°ΡΠΈΠΊΠΈ | |
grInvalidFont | — 13 | Invalid font fite | Π ΡΠ°ΠΉΠ»Π΅ ΡΡΠΈΡΡΠ° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ | |
grInvalidFontNum | — 14 | Invalid font number | ΠΠ΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΈΡΡΠ° | |
grInvalidDeviceNum | — 15 | Invalid device number | ΠΠ΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° | |
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
Uses Graph;
Procedure GrInit;
Var
GraphDriver: Integer;
GraphMode: Integer;
ErrorCode: Integer;
Begin
GraphDriver: =Detect;
InitGraph (GraphDriver, GraphMode, '');
ErrorCode: =GraphResult;
if ErrorCode <> grOK then
begin
Writeln (`ΠΡΠΈΠ±ΠΊΠ° Π³ΡΠ°ΡΠΈΠΊΠΈ: `, GraphErrorMsg (ErrorCode));
Writeln (`ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°…');
Halt (1);
end;
Begin {ΠΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ}
GrInit;
Line (0, 0, GetMaxX, GetMaxY);
Readln;
CloseGraph;
End.
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Grlnit Π»ΡΡΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, INITGRAF. PAS) ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. Π’Π°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ Π²ΡΠ΅Π³Π΄Π° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ²
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΈΠΌΠ΅Π½Π° ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠΊΡΠ°Π½Π½ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΡΠ°ΠΉΠ²Π΅Ρ | ΠΠΌΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° (Π² ΡΠΎΡΠΊΠ°Ρ ) | ΠΠ°Π»ΠΈΡΡΠ° | Π§ΠΈΡΠ»ΠΎ Π²ΠΈΠ΄Π΅ΠΎΡΡΡΠ°Π½ΠΈΡ | |
CGA | CGAC0 = 0 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | ||
CGAC1 = 1 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
CGAC2 = 2 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
CGAC3 = 3 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
CGAHi = 4 | 640×200 | 2 ΡΠ²Π΅ΡΠ° | |||
MCGA | MCGAC0 = 0 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | ||
MCGAC1 = 1 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
MCGAC2 = 2 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
MCGAC3 = 3 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
MCGAMed= 4 | 640×200 | 2 ΡΠ²Π΅ΡΠ° | |||
MCGAHi = 5 | 640×480 | 2 ΡΠ²Π΅ΡΠ° | |||
EGA | EGALo = 0 | 640×200 | 16 ΡΠ²Π΅ΡΠΎΠ² | ||
EGAHi = 1 | 640×350 | 16 ΡΠ²Π΅ΡΠΎΠ² | |||
EGA64 | EGA64Lo = 0 | 640×200 | 16 ΡΠ²Π΅ΡΠΎΠ² | ||
EGA64Hi = 1 | 640×350 | 4 ΡΠ²Π΅ΡΠ° | |||
EGAMono | EGAMonoHi = 3 | 640×350 | 2 ΡΠ²Π΅ΡΠ° | 1(2) | |
Herc | HercMonoHi = 0 | 720×348 | 2 ΡΠ²Π΅ΡΠ° | ||
ΠΠ’Π’ | ΠΠ’Π’400Π‘0 = 0 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | ||
ΠΠ’Π’400Π‘1 = 1 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
ΠΠ’Π’400Π‘2 = 2 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
ΠΠ’Π’400Π‘Π = 3 | 320×200 | 4 ΡΠ²Π΅ΡΠ° | |||
ATT400Med = 4 | 640×200 | 2 ΡΠ²Π΅ΡΠ° | |||
ΠΠ’Π’400Πi= 5 | 640×400 | 2 ΡΠ²Π΅ΡΠ° | |||
VGA | VGALo = 0 | 640×200 | 16 ΡΠ²Π΅ΡΠΎΠ² | ||
VGAMed = 1 | 640×350 | 16 ΡΠ²Π΅ΡΠΎΠ² | |||
VGAHi = 2 | 640×480 | 16 ΡΠ²Π΅ΡΠΎΠ² | |||
PC3270 | PC3270Hi = 0 | 720×350 | 2 ΡΠ²Π΅ΡΠ° | ||
IBM8514 | IBM8514Lo = 0 | 640×480 | 256 ΡΠ²Π΅ΡΠΎΠ² | ||
IBM8514= 1 | 1024×768 | 256 ΡΠ²Π΅ΡΠΎΠ² | |||
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΠ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° DetectGraph. ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°:
DetectGraph (VAR GraphDriver, GraphMode: Integer)
ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Π° Π΄ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ. Π§Π΅ΡΠ΅Π· ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ GraphDriver Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ° ΡΠ°Π±Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ, Π° ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ GraphMode — ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠΎΠ»Π±ΡΠ°. ΠΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ InitGraph. ΠΠΎΡΠ»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ GraphDriver Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° — ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π³ΡΡΠΏΠΏΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½ΠΎ ΡΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ. ΠΠΎ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π²Π°ΠΆΠ½ΡΠΌ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ².
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ². ΠΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ
GetGraphMode: Integer,
Π€ΡΠ½ΠΊΡΠΈΡ
GetMaxMode: Word
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°; ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² 0… GetMaxMode. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
GetModeRange (GraphDriver: Integer; VAR LoMode, HiMode: Integer),
ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ LoMode ΠΈ HiMode, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π½ΠΈΠΆΠ½ΡΡ ΠΈ Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° GraphDriver. ΠΠΎ ΠΏΠΎ ΡΡΠ΄Ρ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ GetMaxMode, ΠΏΠΎΠ»Π°Π³Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ.
Π€ΡΠ½ΠΊΡΠΈΠΈ GetModeName ΠΈ GetDriverName.
GetModeName (GraphMode: Word): String. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΠΌΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°Π»ΠΈΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, '640×200 CGA'. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΠΠΠ.
USES Graph; | {ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ Graph} | |
{$I initgraf. pas} | { ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ} | |
VAR | ||
mode: Integer; | ||
BEGIN | ||
Grlnit; | { ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ} | |
for mode := 0 to GetMaxMode do | { ΠΏΠΎΠΊΠ°Π· Π²ΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² } | |
OutTextXY (10, 10+mode*10, GetModeName (mode)); | ||
ReadLn; | { ΠΏΠ°ΡΠ·Π° Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ…} | |
CloseGraph | { Π·Π°ΠΊΡΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ} | |
END. | ||
Π€ΡΠ½ΠΊΡΠΈΡ GetDriverName: String ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°. ΠΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ InitGraph ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ GraphDriver ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΠΊΠ°ΠΊ Detect.
ΠΡΠΈΡΡΠΊΠ° ΡΠΊΡΠ°Π½Π° ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΎΠ²
ΠΡΠΈΡΡΠΊΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π°. ΠΠ²Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠΎΡΡΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π±Ρ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π²ΡΠΎΡΠΎΠΉ:
ClearDevice
ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΎΡΠΈΡΠ°Π΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΊΡΠ°Π½ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² (0, 0), Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
GraphDefaults ΠΊΡΠΎΠΌΠ΅ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠΊΡΠ°Π½Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΠ΄ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ:
o Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°Π²Π½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΊΡΠ°Π½Π°;
o Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΡΠ²Π΅ΡΠΎΠ²Π°Ρ ΠΏΠ°Π»ΠΈΡΡΠ°;
o ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ°ΡΡΡΡ ΡΠ²Π΅ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π»ΠΈΠ½ΠΈΠΉ ΠΈ ΡΠΎΠ½Π° ΡΠΊΡΠ°Π½Π°;
o ΡΠΎΠ»ΡΠΈΠ½Π° ΠΈ ΡΡΠΈΠ»Ρ Π»ΠΈΠ½ΠΈΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ;
o ΡΠ²Π΅Ρ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³ΡΡ ΠΈ Π·Π°ΠΌΠΊΠ½ΡΡΡΡ Π»ΠΎΠΌΠ°Π½ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ;
o ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΡΠΈΡΡ ΠΈ Π΅Π³ΠΎ ΡΡΠΈΠ»Ρ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° GraphDefaults Π½Π΅ΡΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ, no-ΡΡΡΠΈ, Π²ΡΠ΅ ΡΡΠ°ΡΡΠΎΠ²ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΎΠ². ΠΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ SetGraphMode ( GraphMode: Integer)
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ GraphMode ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΠΎΡΠΈΡΠ°Π΅Ρ ΡΠΊΡΠ°Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° RestoreCRTMode. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΡΠ°Π±ΠΎΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° RestoreCRTMode, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΡΠ°Π±ΠΎΡΠ°Π²ΡΠΈΠΉ Π΄ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ. ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΡΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ — CloseGraph. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΅ Π²ΠΎΠ·Π²ΡΠ°Ρ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ InitGraph, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ RestoreCRTMode, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π² Π³ΡΠ°ΡΠΈΠΊΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠΌ
USES Graph; | {ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ Graph} | |
{$I Initgraf. pas} | {ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ} | |
CONST | {ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ — ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ} | |
graph_str = `ΠΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ'; | ||
text_str = 'Π ΡΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ'; | ||
graph_ back = 'Π ΡΡΠΎ ΡΠ½ΠΎΠ²Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ'; | ||
BEGIN | ||
Grlnit; | {ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΈ} | |
Line (0,0,GetMaxX, GetMaxY }; | { Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΡΠΊΡΠ°Π½Π°} | |
OutTextXY (0,100,graph_str); | { Π²ΡΠ²ΠΎΠ΄ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ} | |
ReadLn; | {ΠΏΠ°ΡΠ·Π° Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°} | |
RestoreCRTMode; | {Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°} | |
Write{ text_str); | { Π²ΡΠ²ΠΎΠ΄ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ} | |
ReadLn; | {ΠΏΠ°ΡΠ·Π° Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°} | |
SetGraphMode (GetGraphMode); | {Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°} | |
Une (0,0,GetMaxX, GetMaxY); | { Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Ρ ΡΠΊΡΠ°Π½Π° } | |
OutTextXY (0,100,graph_back); | {Π²ΡΠ²ΠΎΠ΄ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ} | |
ReadLn; | { ΠΏΠ°ΡΠ·Π° Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°} | |
CloseGraph | { Π·Π°ΠΊΡΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ} | |
End. | ||
ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ GetGraphMode, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ RestoreCRTMode Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Ρ. Π΅. ΠΎΠ½ ΠΎΡΡΠ°Π΅ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ.
Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈ «ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ»
Π ΡΠ°ΡΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠ΅ ΡΠΊΡΠ°Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Π°Π΄ΡΠ΅ΡΡΠ΅ΠΌΡΡ ΡΠΎΡΠ΅ΠΊ ΠΈ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΌ ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠ²Π΅ΡΡΡΠΈΡ ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ³Π°ΡΠ΅Π½Π½ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ². ΠΡΠΈ ΡΠΎΡΠΊΠΈ Π°Π΄ΡΠ΅ΡΡΡΡΡΡ Π΄Π²ΡΠΌΡ ΡΠ΅Π»ΡΠΌΠΈ — Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΡΠΎΡΠΊΠΈ nx ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ny:
0 <= nΡ <= nx_max,
0 <= nΡ <= ny_max,
Π³Π΄Π΅ nx_max ΠΈ ny_max — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΡΠ΅ΠΌΡΡ ΡΠΎΡΠ΅ΠΊ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ ΠΌΠΈΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ°
Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΡΠΎΡΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΡΠ΅ΠΌΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΊΡΠ°Π½Π°. ΠΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠ°ΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ
GetMaxX: Integer;
GetMaxY: Integer.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ nx_max ΠΈ ny_max, Π±ΡΠ΄ΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ². ΠΡΠΈ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ, Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ, ΡΠ΅ΠΌ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ.
Π’ΠΎΡΠΊΠ° Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ (0,0) ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΡΠΊΡΠ°Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Ρ. ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ (nx, ny) Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
«Π’Π΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ» ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ, Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΡΡΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ ΠΈ ΠΊΡΡΡΠΎΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΌ. ΠΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ «ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ».
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΊΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ [0, rx- 1] Π΄Π»Ρ X ΠΈ [0, ry — 1] Π΄Π»Ρ YΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ. Π’ΠΎΡΠΊΠΎΠΉ ΠΎΡΡΡΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ Π»Π΅Π²ΡΠΉ ΡΠ³ΠΎΠ» ΡΠΊΡΠ°Π½Π°. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ XΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, Π° Y-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ — ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ Π΄Π΅ΠΊΠ°ΡΡΠΎΠ²ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΏΡΠΈΠ½ΡΡΡΡ Π² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅, ΠΈ ΡΠ»ΡΠΆΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°.
ΠΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° Π² Π΄Π΅ΠΊΠ°ΡΡΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
1. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
2. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ½ΠΈΠ·Ρ (Π½ΡΠ»Π΅Π²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ), ΡΠ°ΠΊ ΠΈ ΡΠ²Π΅ΡΡ Ρ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ).
3. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Y ΠΎΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ·.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΠΊΠ°ΡΡΠΎΠ²Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠΊΠΈ (X, Y) Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΠ°ΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ (Xg, Yg) ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π°ΠΌ:
Xg= Sx*X + dx,
Yg= ry-Sy*Y — dy,
ΠΠ΄Π΅ X — ΡΠ΅Π»Π°Ρ ΡΠ°ΡΡΡ X, Sx, Sy— ΠΌΠ°ΡΡΡΠ°Π±Π½ΡΠ΅ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΡΠ΅ ΠΈΠ· ΡΡΠ»ΠΎΠ²ΠΈΡ
rx=Sx*Xmax+1
ry=Sx*Ymax+1
Xmax, Ymax— ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
Π‘Π»Π°Π³Π°Π΅ΠΌΡΠ΅ dx, dy ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΡΠΊΡΠ°Π½Π°.
ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΎ Π² ΡΠ΅Π½ΡΡ ΡΠΊΡΠ°Π½Π° ΠΏΡΠΈ dx=rx/2, dy=ry/2.
Π Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° MoveTo (Ρ , Ρ: Integer) ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠΎΡΠΊΡ ΡΠΊΡΠ°Π½Π° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (Ρ , Ρ).
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° MoveRel( dx, dy : Integer ) ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° dx ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° dy ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ. ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ dx ΠΈ dy ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ — ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ.
Π ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π΄ΠΈΡΠΏΠ»Π΅Ρ ΠΎΡΡ Y Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° Π²Π½ΠΈΠ·, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π²Π²Π΅ΡΡ , ΡΠΎ ΠΏΡΠΈΡΠ°ΡΠ΅Π½ΠΈΠ΅ dy Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ.
ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
GetX: Integer;
GetY: Integer,
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎ ΠΎΡΠΈ X ΠΈ ΠΏΠΎ ΠΎΡΠΈ Y. ΠΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ ΠΎΠΏΡΠΎΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΡΠΎΠ½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ LineTo, LineRel, OutText.
ΠΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠΊΡΠ°Π½Π° (InitGraph, GraphDefaults, ClearDevice, SetGraphMode, SetViewPort ΠΈ ClearViewPort) ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (0,0).
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² ΠΈ ΡΠΈΠ³ΡΡ. ΠΠΈΠ½ΠΈΠΈ ΠΈ ΠΈΡ ΡΡΠΈΠ»ΠΈ
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΠ²ΠΎΠ΄Π° Π»ΠΈΠ½ΠΈΠΈ (ΠΎΡΡΠ΅Π·ΠΊΠ°) Π½Π° ΡΠΊΡΠ°Π½ (Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅ ΠΈ ΡΡΠΈΠ»Π΅) ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅:
Line (Π₯1, Y1, Π₯2, Y2: Integer)
ΠΠ΄Π΅ΡΡ Π·Π°Π΄Π°ΡΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π°ΡΠ°Π»Π° (X1,Y1) ΠΈ ΠΊΠΎΠ½ΡΠ° (X2,Y2) ΠΎΡΡΠ΅Π·ΠΊΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π΅ΡΠ΅ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ²:
1. ΠΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π² ΡΠΎΡΠΊΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (X, Y). ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
2. LineTo (Ρ , Ρ: Integer)
3. ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π·Π° Π½Π°ΡΠ°Π»ΠΎ «Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ » ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ (0,0) ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ° ΠΎΡΡΠ΅Π·ΠΊΠ° Π² Π½ΠΈΡ . Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
4. LineRel( dx, dy : Integer )
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠΎΠ½ΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ Π³ΡΠ°Π½ΠΈΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΡΡΡ ΠΎΡΡΠ΅Π·ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π·Π°Π½Π° (Π½ΠΎ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡ Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΠΎΠ½ΡΠ° ΠΎΡΡΠ΅Π·ΠΊΠ°).
Π Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠΈΠ»Π΅ΠΌ Π»ΠΈΠ½ΠΈΠΉ: Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΎΠ»ΡΠΈΠ½Ρ, ΡΠΈΠΏ (ΡΠΏΠ»ΠΎΡΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡΠ½ΠΊΡΠΈΡΠ½ΡΠ΅ ΠΈ Ρ. ΠΏ.). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΠΏΡ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ Π»ΠΈΠ½ΠΈΠΉ:
TYPE
LineSettingsType=RECORD
LineStyle | : Word; | { ΡΡΠΈΠ»Ρ (ΡΠΈΠΏ) } | |
Pattern | : Word; | { ΡΠ°Π±Π»ΠΎΠ½ ΡΠΈΠΏΠ° } | |
Thickness | : Word; | { ΡΠΎΠ»ΡΠΈΠ½Π° } | |
END;
CONST
{ ΠΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»Ρ LineStyle :}
SolidLn | = 0 | { ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ } | |
DottedLn | = 1 | { ΡΠΎΡΠ΅ΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ} | |
CenterLn | = 2 | { ΡΡΡΠΈΡ ΠΏΡΠ½ΠΊΡΠΈΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ} | |
DashedLn | = 3 | { ΠΏΡΠ½ΠΊΡΠΈΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ } | |
UserBitLn | = 4 | { ΡΠΈΠΏ Π»ΠΈΠ½ΠΈΠΈ Π·Π°Π΄Π°Π½ ΡΠ²Π½ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ} | |
{ ΠΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»Ρ Thickness: }
NormWidth = 1 | { ΡΠΎΠ»ΡΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΠΊΡΠ΅Π»} | |
ThickWidth = 3 | { ΡΠΎΠ»ΡΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ Π² ΡΡΠΈ ΠΏΠΈΠΊΡΠ΅Π»Π°} | |
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΡΠΈΠ»Π΅ Π»ΠΈΠ½ΡΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
GetLineSettings( VAR LineType : LineSettingsType)
Π ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΠΈΠ»Ρ Π»ΠΈΠ½ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ SetLineStyle( LineStyle, Pattern, Thickness : Word ), ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² Π² Π½Π΅Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ LineStyle Π½Π΅ ΡΠ°Π²Π΅Π½ UserBitLn, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Pattern Π½Π΅ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»ΠΈ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ Π½ΡΠ»Π΅ΠΌ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΠ³Π΄Π° LineStyle ΡΠ°Π²Π½ΠΎ UserBitLn. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠ° Π»ΠΈΠ½ΠΈΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ:
1. ΠΠΈΠ½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ 16 ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ². ΠΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ Π½Π΅ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° 16 Π½Π°ΡΠ΅Π»ΠΎ, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΡΡΠ΅Π·ΠΎΠΊ ΠΎΠ±ΡΠ΅Π·Π°Π΅ΡΡΡ.
2. ΠΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½-ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈ ΡΠ²Π΅ΡΡΡΠΈΡ ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ³Π°ΡΠ΅Π½Π½ΡΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ². ΠΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ ΠΈ Π½ΡΠ»Π΅ΠΉ: 1 — ΡΠ²Π΅ΡΠΈΡΡΡ, 0 — Π½Π΅Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅Π»ΠΊΠΈΠΉ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΏΡΠ½ΠΊΡΠΈΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ 1 100 110 011 001 100 — Π²ΡΠ΅Π³ΠΎ 16 ΡΠ°Π·ΡΡΠ΄ΠΎΠ².
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Ρ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌΠΈ Π² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π² Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ (52 428) ΠΈΠ»ΠΈ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈΡΠΈΡΠ½ΡΡ ($Π‘Π‘Π‘Π‘) ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π½Π° ΠΌΠ΅ΡΡΠΎ Pattern ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ SetLineStyle.
Uses Graph; | {ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ Graph} | |
{$I Initgraf. pas} | {ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ} | |
Var | ||
x: Integer; | ||
BEGIN | ||
Grlrtit; | {ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΈ} | |
X: = GetMaxX; | {ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΏΠΎ X} | |
SetLineStyle (DottedLn, 0, NormWidth); | ||
Line (0, 10, x, 10); | {ΡΠΎΠ½ΠΊΠ°Ρ ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ} | |
SetLineStyle (CenterLn, 0, NormWidth); | ||
Line (0, 20, x, 20); | {ΡΡΡΠΈΡ ΠΏΡΠ½ΠΊΡΠΈΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ} | |
SetLineStyle (UserBitLn, $CCCC, NonriWidth); | ||
Line{ 0, 30, x, 30); | { Π»ΠΈΠ½ΠΈΡ 1 100 110 011 001 100 } | |
SetLineStyle (UserBitLn, $B38 °F, NormWidth); | ||
Line (0, 40, x, 40); | { Π»ΠΈΠ½ΠΈΡ 1 011 001 110 001 111 } | |
SetLineStyle (UserBitLn, $ 4C70, NormWidth); | ||
Line (0, 50, x, 50); | { Π»ΠΈΠ½ΠΈΡ 100 110 001 110 000 } | |
ReadLn; | { ΠΏΠ°ΡΠ·Π° Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π° } | |
SetLineStyle (DottedLn, 0, ThickWidth); | ||
Line (0. 10, x, 10); | { ΡΠΎΠ»ΡΡΠ°Ρ ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ } | |
SetLineStyle (CenterLn, 0, ThickWidth); | ||
Line (0, 20, x, 20); | { ΡΡΡΠΈΡ -ΠΏΡΠ½ΠΊΡΠΈΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ} | |
SetLineStyle (UserBitLn, $Π‘Π‘Π‘Π‘, ThickWidth); | ||
Line (0, 30, x, 30); | { Π»ΠΈΠ½ΠΈΡ 1 100 110 011 001 100 } | |
SetLineStyle (UserBitLn, $B38 °F, ThickWidth); | ||
Line (0, 40, x, 40); | { Π»ΠΈΠ½ΠΈΡ 1 011 001 110 001 111 } | |
SetLineStylef UserBitLn, $ 4Π‘70, ThickWidth); | ||
Line (0, 50, x, 50); | { Π»ΠΈΠ½ΠΈΡ 100 110 001 110 000} | |
ReadLn; | { ΠΏΠ°ΡΠ·Π° Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°} | |
CloseGraph | { Π·Π°ΠΊΡΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ} | |
END. | ||
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ° ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΠΉ ΡΠ°Π·Π½ΠΎΠΉ ΡΠΎΠ»ΡΠΈΠ½Ρ: Π΄Π²Π΅ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π° ΡΡΠΈ — ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ Π½Π°ΠΌΠΈ.
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΠ»Ρ Π»ΠΈΠ½ΠΈΠΉ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΎΡΡΠ΅Π·ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠΈΠ³ΡΡΡ, ΠΈΠ· Π½ΠΈΡ ΡΠΎΡΡΠΎΡΡΠΈΠ΅. ΠΡΠΎΡΠ΅Π΄ΡΡΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠ΅ Π½Π° ΡΠΊΡΠ°Π½ Π΄ΡΠ³ΠΈ, ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ»ΡΠΈΠ½Ρ, Π·Π°Π΄Π°Π½Π½ΡΡ Π² ΡΡΠΈΠ»Π΅.
ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΎΡΡΠ΅Π·ΠΊΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
MoveTo (100, 100);
LineRel (20, 0); LineRel (0, 20);
LineRel (-20, 0); LineRel (0, -20);
ΡΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΡΠΆΠ°ΡΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. ΠΠΎΡ ΠΎΠΆΠ°Ρ ΠΊΠ°ΡΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ «Π²ΡΡΡΠ½ΡΡ» Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² ΠΏΡΡΠΌΡΡ ΠΈΠ»ΠΈ ΡΠΎΡΠ΅ΠΊ: ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠ»Π»ΠΈΠΏΡ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΎΡΡ ΡΠΊΡΠ°Π½Π° ΠΊ ΡΠΈΡΠΈΠ½Π΅ Π½Π΅ ΡΠ°Π²Π½ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ ΠΊ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ. ΠΠ»Ρ ΡΡΠ΅ΡΠ° ΡΡΠΎΠ³ΠΎ Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²Π° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ BGI Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠΌ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (aspect ratio). ΠΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΠ IBM PC/XT/AT ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΎΡΡ ΡΠΊΡΠ°Π½Π° ΠΊ Π΅Π³ΠΎ ΡΠΈΡΠΈΠ½Π΅, ΡΠ°Π²Π½ΠΎΠ΅ 0,75. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² ΠΊΠΎΠ»Π΅Π±Π»Π΅ΡΡΡ ΠΎΡ 640×200 Π΄Π»Ρ CGA Π΄ΠΎ 1024×768 IBM8514, ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ GetMaxY ΠΊ GetMaxX ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΡ 0,3125 (640×200) Π΄ΠΎ 0,75 (640×480, 1024×768). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π»ΠΈΠ½Ρ ΠΎΡΠΈ ΡΠΊΡΠ°Π½Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π·Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ² ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ Ρ ΠΏΠΈΠΊΡΠ΅Π»Π°ΠΌΠΈ, ΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΠ»Π»ΠΈΠΏΡ, Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ»ΡΠΎΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π²Π½Π° ΡΠ°Π΄ΠΈΡΡΡ, Π° Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Π°Ρ — ΡΠ°Π΄ΠΈΡΡΡ, Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π½Π° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph Π΅ΡΡΡ Π΄Π²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠ΅ ΡΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ. ΠΠ΅ΡΠ²Π°Ρ ΠΈΠ· Π½ΠΈΡ
GetAspectRatio (VAR Π, Π: Word)
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ A ΠΈ B Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ (Π/Π) ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π΅ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅), ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ Π½Π΅ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠ΅Π»ΡΡ .
ΠΡΡΠ³Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°,
SetAspectRatio (Π, Π: Word)
ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ, ΡΠ°Π²Π½ΡΠΉ (Π/Π). ΠΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° ΡΠΆΠ°ΡΠΈΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΡ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ, ΡΠ»Π»ΠΈΠΏΡΡ, Π΄ΡΠ³ΠΈ ΠΈ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ GetAspectRatio. ΠΠΎΡΡΡΠΎΠΈΡΡ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠΌΠ½ΠΎΠΆΠ°Ρ Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ (ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ) ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ.
{ ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° }
Program QuadroDem;
Uses Graph;
const l=100;
Var
d, r, e:integer;
a, b :word;
Begin
d:=Detect;
InitGraph (d, r,'');
e:=GraphResult;
if e<>grOk then
writeln (GraphErrorMsg (e))
else
begin
GetAspectRatio (a, b);
Rectangle (20,20,round (l*(b/a)), l);
readln;
CloseGraph;
end
End.
ΠΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ, ΡΠ»Π»ΠΈΠΏΡΡ ΠΈ Π΄ΡΠ³ΠΈ
ΠΠ»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
Circle(x, Ρ: Integer; Radius: Word)
ΠΠ΄Π΅ΡΡ (X, Y) — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π½ΡΡΠ° ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ, Radius — Π΅Π΅ ΡΠ°Π΄ΠΈΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΠΎΠΌΡ BGI-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ»Π»ΠΈΠΏΡ, Π²ΡΡΡΠ½ΡΡΡΠΉ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ (ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ (ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ).
Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π»ΠΈΠΏΡΠΎΠ², Π΄ΡΠ³, ΡΠ΅ΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΠΎΡ, Π·Π°Π»ΠΈΡΡΠΉ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΡΠ΅ ΠΎΠ½ΠΈ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ StartAngle ΠΈ EndAngle, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ³ΠΎΠ» Π΄ΡΠ³ΠΈ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ.
ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈ X (ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ) ΠΏΡΠΈΠ½ΡΡΠΎ Π·Π° 0Β°, ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈ Y — Π·Π° 90Β°, Ρ. Π΅. ΡΠ³Π»Ρ ΠΎΡΠΌΠ΅ΡΡΡΡΡΡ ΠΎΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈ X ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ. ΠΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π°ΡΡΡΡ Π² Π³ΡΠ°Π΄ΡΡΠ°Ρ .
ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°:
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΡΠ³ΠΈ ΡΠ°Π΄ΠΈΡΡΠ° Radius ΠΈΠ· ΡΠ΅Π½ΡΡΠ° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (X, Y) ΠΎΡ ΡΠ³Π»Π° StartAngle Π΄ΠΎ EndAngle:
Arc (X, Y: Integer; StartAngle, EndAngle, Radius: Word)
ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΠΈΠ΄ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π΄ΡΠ³ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠ΅ΠΉ.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π»ΠΈΠΏΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄ΡΠ³ΠΈ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ:
Ellipse (X, Y: Integer; StartAngle, EndAngle, XRadius, YRadius: Word)
Π³Π΄Π΅ XRadius ΠΈ YRadius — ΡΠ°Π·ΠΌΠ΅ΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ»ΡΠΎΡΠ΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡΠΈ ΡΠ»Π»ΠΈΠΏΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Ρ ΠΎΡΡΠΌ X ΠΈ Y. ΠΠ»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ»Π»ΠΈΠΏΡΠ° Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ³Π»Ρ 0Β° ΠΈ 360Β°. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π΅Π³ΠΎ Π²ΠΈΠ΄.
Π£Π³Π»ΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π½Π΅ΡΠ΄ΠΎΠ±Π½Ρ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ — ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π°ΡΠ°Π»Π° ΠΈ ΠΊΠΎΠ½ΡΠ° Π΄ΡΠ³ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΡΠ»Π»ΠΈΠΏΡΠ° Π½Π΅ ΠΈΠ½Π°ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΡΠΈΠ³ΠΎΠ½ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ Arc, Ellips, Sector ΠΈ PieSlice.
ΠΠ·Π²Π»Π΅ΡΡ ΠΊΠΎΠ½ΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄ΡΠ³ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
GetArcCoords (VAR ArcCoords: ArcCoordsType)
Π’ΠΈΠΏ ArcCoordsType ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
TYPE
ArcCoordsType = RECORD
X, Y | :Integer; | {ΡΠ΅Π½ΡΡ} | |
XStart, YStart | :Integer; | {Π½Π°ΡΠ°Π»ΠΎ} | |
XEnd, YEnd | :Integer; | {ΠΊΠΎΠ½Π΅Ρ} | |
END;
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΠ³ΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠΎΡΠ°.
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΠΈ Π»ΠΎΠΌΠ°Π½ΡΡ
ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Rectangle (Π₯1, Y1, Π₯2, Y2: Integer), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΡ (X1, Y1) — (X2, Y2). ΠΠ»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ° Π½Π°Π΄ΠΎ Π²ΡΠ±ΡΠ°ΡΡ Π²ΡΡΠΎΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠ°Π²Π½ΡΠ»Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΠΈΠ½Ρ Π½Π° ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠΈΠ³ΡΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π²Π΅ΡΡΠΈΠ½ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π½Π΅Π·Π°ΠΌΠΊΠ½ΡΡΡΠ΅), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
DrawPoly (NumPoints: Word; VAR PolyPoints)
ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ Π»ΡΠ±ΡΡ Π»ΠΎΠΌΠ°Π½ΡΡ, Π·Π°Π΄Π°Π½Π½ΡΡ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠΎΡΠ΅ΠΊ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠ³ΡΡΠ°, ΡΠ°ΠΊ ΠΈ ΡΠ°Π±Π»ΠΈΡΠ½Π°Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ NumPoints — ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅ΠΊ Π»ΠΎΠΌΠ°Π½ΠΎΠΉ (Π·Π°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΌΠΊΠ½ΡΡΡΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ N Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NumPoints Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ»Π° N, Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° (N+1) -ΠΉ ΡΠΎΡΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ). ΠΠΎΠ΄ Π±Π΅ΡΡΠΈΠΏΠΎΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ PolyPoints ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΡΠΎΡΡΠΎΡΡΠ°Ρ ΠΈΠ· Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠΎΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ X-ΠΈ Y ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ. Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph Π²Π²Π΅Π΄Π΅Π½ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ:
TYPE
PointType=RECORD
X, Y: Integer; {ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠΊΠΈ}
END;
ΠΠ±ΡΡΠ½ΠΎ Π½Π°Π±ΠΎΡ ΡΠΎΡΠ΅ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠΈΠΏΠ° PointType (ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° PolyPoint ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ DrawPoly). ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ DrawPoly ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π΄Π°Π»Π΅Π΅.
USES Graph; | {ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ Graph } | |
{$I initgraf. pas} | {ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ} | |
CONST | ||
Pi * 3.14 151 828; | {ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Pi (Π·Π°ΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ)} | |
Pi2 = 2 * Pi; | {ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ ΠΎΡ Pi…} | |
Pi001 = 0.01* Pi; | ||
VAR | ||
angle: Real; | ||
sine_func: Array [1.201] of PointType ; | { ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡΠ΅ΠΊ} | |
maxy, i: Integer; | ||
BEGIN | ||
Grlnit; | {ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΈ} | |
maxy := GetMaxY div 2; | {ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π° ΡΠΊΡΠ°Π½Π° ΠΏΠΎ ΠΎΡΠΈ Y} | |
angle := 0.0; | {Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ} | |
i := 0; | { ΡΡΠ΅ΡΡΠΈΠΊ ΡΠΎΡΠ΅ΠΊ Π² sine_func} | |
repeat | { ΡΠΈΠΊΠ» Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ sine_func } | |
Inc (i); | ||
sine_func[i]. x:= Round (100 * angle) + 10; | ||
sine_func[i]. y:= Round (100 * Sin (angle)) + maxy; | ||
angle := angle + Pi001; | ||
until angle > Pi2; | ||
DrawPoly (i, sine_func) ; | { ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° ΡΠΈΠ½ΡΡΠ°} | |
ReadLn; | {ΠΏΠ°ΡΠ·Π° Π΄ΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°} | |
CloseGraph | {Π·Π°ΠΊΡΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ} | |
END. | ||
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ DrawPoly ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π³ΡΠ°ΡΠΈΠΊ ΡΠ°ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½ΠΎΠΌΠ΅Ρ n ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° (Ρ.Π΅. ΡΠΎΡΠΊΠΈ), Π° Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ — ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΎΡΠ΅ΠΊ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ n-ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
DrawPoly (20, sine_func [100]);
Π’Π°ΠΊΠΎΠΉ Π²ΡΠ·ΠΎΠ² Π²ΡΠ²Π΅Π΄Π΅Ρ Π»ΠΎΠΌΠ°Π½ΡΡ Π»ΠΈΠ½ΠΈΡ ΠΏΠΎ ΡΠΎΡΠΊΠ°ΠΌ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ 100, 101,…, 119.
ΠΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΎΡΠ΅ΠΊ, ΡΠΎΠΈΠ·ΠΌΠ΅ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ GetMaxX, ΠΈ ΠΏΡΠΈ Π½Π΅ΡΠΏΠ»ΠΎΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΡΠ°Π³ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΡΠΈΠ½Π΅ ΠΏΡΠΎΠ±Π΅Π»Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ½ΠΊΡΠΈΡΠΎΠΌ. Π ΠΈΡΠΎΠ³Π΅ Π»ΠΈΠ½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΡΠΎΡΠ²ΠΈΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ°Π΄ΠΎ Π»ΠΈΠ±ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΎΡΠ΅ΠΊ, Π»ΠΈΠ±ΠΎ ΠΈΠ·Π±ΡΠ°ΡΡ ΡΠΏΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠΈΠΏ Π»ΠΈΠ½ΠΈΠΈ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ Π·Π°Π»ΠΈΠ²ΠΊΠΈ (Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ)
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ Π³Π°ΠΌΠΌΠΎΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅, ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΠ°Π·Π±ΠΎΡΡΠΈΠ²ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠΈΠ·ΠΈΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π·Π°Π»ΠΈΠ²ΠΊΠΈ
Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ (Π·Π°Π»ΠΈΡΡ) ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ «ΡΠ·ΠΎΡΠΎΠΌ» Π»ΡΠ±ΡΡ Π·Π°ΠΌΠΊΠ½ΡΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΈΠ΄ «ΡΠ·ΠΎΡΠ°» Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ Π·Π°Π»ΠΈΠ²ΠΊΠΈ. Π Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Π΅ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΡΠ΄ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Π½ΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅.
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Π·Π°Π»ΠΈΠ²ΠΊΠΈ) ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
SetFillStyle (Pattern: Word; Color: Word)
Π³Π΄Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Pattern ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΈΠ΄ ΡΠ°Π±Π»ΠΎΠ½Π° Π·Π°Π»ΠΈΠ²ΠΊΠΈ, a Color — Π΅Π³ΠΎ ΡΠ²Π΅Ρ. ΠΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Pattern ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Graph Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ:
CONST
EmptyFill | =0 | { ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠ²Π΅ΡΠΎΠΌ ΡΠΎΠ½Π°} | |
SolidFill | =1 | { ΡΠΏΠ»ΠΎΡΠ½Π°Ρ Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ} | |
LineFill | =2 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠΈΠΏΠ° ===} | |
LtSlashFill | =3 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠΈΠΏΠ° ///} | |
SlashFill | =4 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΠΆΠΈΡΠ½ΡΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ ΡΠΈΠΏΠ° ///} | |
BkSlashFill | =5 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΠΆΠΈΡΠ½ΡΠΌΠΈ Π»ΠΈΠ½ΠΈΡΠΌΠΈ ΡΠΈΠΏΠ° \} | |
LtBkSlashFill | =6 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠΈΠΏΠ° \} | |
HatchFill | =7 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠ΅Π΄ΠΊΠΎΠΉ ΡΡΡΠΈΡ ΠΎΠ²ΠΊΠΎΠΉ} | |
XHatchFill | =8 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠ°ΡΡΠΎΠΉ ΡΡΡΠΈΡ ΠΎΠ²ΠΊΠΎΠΉ} | |
InterleaveFill | =9 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΠΏΡΠ΅ΡΡΠ²ΠΈΡΡΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ} | |
WideDotFill | =10 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠ΅Π΄ΠΊΠΈΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ} | |
CloseDotFill | =11 | { Π·Π°Π»ΠΈΠ²ΠΊΠ° ΡΠ°ΡΡΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ} | |
UserFill | =12 | { Π·Π°Π»ΠΈΠ²ΠΊΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ} | |
ΠΠΎΠ½ΡΡΠ°Π½ΡΠ° UserFill ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° Π·Π°Π»ΠΈΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ» Π·Π°Π΄Π°Π½ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠ»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
SetFillPattern (PattMatrix: FillPatternType; Color: Word)
ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅ΠΉ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ PattMatrix ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π·Π°Π»ΠΈΠ²ΠΊΠΈ ΠΈ ΡΠΊΠ°Π·Π°Π² ΡΠ²Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Color. ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° SetFillStyle, Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ «ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΡΠ΅» ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° SetFillStyle ΡΠ΄ΠΎΠ±Π½Π΅Π΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π΄Π΅Π»ΠΎΠ²ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ (Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΡΡΠ³ΠΎΠ²ΡΠ΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ Ρ. ΠΏ.). ΠΠ°Π΄Π°Π²Π°Ρ Ρ ΠΎΡΡ Π±Ρ ΡΠ°Π· Π½ΠΎΠ²ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½, ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ UserFill ΠΈ Π΄Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΡΠΈΠ½Π°Π΄ΡΠ°ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π·Π°Π΄Π°ΡΡ UserFill, Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ GraphResult Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ -11 (grError) ΠΈ Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄Π° ΡΠ°Π±Π»ΠΎΠ½Π° ΠΈ ΡΠ²Π΅ΡΠ° ΠΎΡΡΠ°Π½ΡΡΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ SolidFill ΠΈ ΡΠ²Π΅Ρ Ρ. Π½ΠΎΠΌΠ΅ΡΠΎΠΌ, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°.
Π ΠΎΠ±Π΅ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Color ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½. Π¦Π²Π΅Ρ ΡΠΎΠ½Π° ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ.
{ ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΡΡΠΈΡ ΠΎΠ²ΠΊΠΈ }
Program FillStDem;
Uses CRT, Graph;
Var
d, r, e, i, j, x, y: integer;
Begin
d:=Detect;
InitGraph (d, r,'');
e:=GraphResult;
if e<>grOk then
writeln (GraphErrorMsg (e))
else
begin
SetGraphMode (0);
x:=GetMaxX div 9;
y:=GetMaxY div 7;
for j:=0 to 2 do
for i:=0 to 3 do
begin
Rectangle ((2*i)*x,(2*j+1)*y,
(2*i+1)*x,(2*j+2)*y);
SetFillStyle (i+j*4,j+1);
Bar ((2*i)*x+1,(2*j+1)*y+1,
(2*i+1)*x-1,(2*j+2)*y-1);
end;
readln;
CloseGraph;
end
End.
ΠΠ°Π»ΠΈΠ²ΠΊΠ° ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ Π·Π°Π»ΠΈΠ²ΠΊΡ. ΠΠΌΠ΅Π΅ΡΡΡ ΡΠ΅Π»ΡΠΉ ΡΡΠ΄ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΡΠΈΡΡΡΡΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΠ³ΡΡΡ ΠΈ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΈΡ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΠ΅ΡΠ²Π°Ρ Π½ΠΈΡ — ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
Bar (X1, Y1, X2, Y2: Integer)
ΡΠΈΡΡΠ΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π»ΠΈΡΠ° ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΠ½Π° ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π΄Π΅Π»ΠΎΠ²ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠ΅ Π΄Π»Ρ ΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΡΠΎΠ»Π±ΡΠ°ΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ (X1,Y1) ΠΈ (X2, Y2) — ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠ³Π»ΠΎΠ² ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. ΠΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
Bar3D (X1, Y1, X2, Y2: Integer; D3: Word; Top: Boolean)
ΠΠ½Π° ΡΠΈΡΡΠ΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»Π΅ΠΏΠΈΠΏΠ΅Π΄, Π»ΠΈΡΠ΅Π²Π°Ρ ΡΡΠΎΡΠΎΠ½Π° ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π° Π³Π»ΡΠ±ΠΈΠ½Π° Π·Π°Π΄Π°Π΅ΡΡΡ Π² ΠΏΠΈΠΊΡΠ΅Π»Π°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ D3. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Π’ΠΎΡ Π·Π°Π΄Π°Π΅Ρ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ: True — ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ, False — Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΠ»Π±ΡΡ, ΡΡΠΎΡΡΠΈΠ΅ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π΅. Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΄Π²Π΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΄Π»Ρ Π½Π΅Π΅:
CONST
TopOn = True; | {Π²Π΅ΡΡ Π½ΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ Π½ΡΠΆΠ½Π°} | |
TopOff = False; | {Π²Π΅ΡΡ Π½ΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡ Π½Π΅ Π½ΡΠΆΠ½Π°} | |
{ ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»Π΅ΠΏΠΈΠΏΠ΅Π΄Π° }
Program Bar3Dem;
Uses CRT, Graph;
Var
d, r, e: integer;
Begin
d:=Detect;
InitGraph (d, r,'');
e:=GraphResult;
if e<>grOk then
writeln (GraphErrorMsg (e))
else
begin
Bar3d (80,100,120,180,15,TopOn);
Bar3d (150,150,190,180,15,TopOff);
Bar3d (230, 50,250,150,15,TopOn);
Bar3d (220,150,260,180,15,TopOn);
Bar3d (300,150,340,180,15,TopOff);
Bar3d (300, 50,340,150,15,TopOn);
readln;
CloseGraph;
end
End.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ «Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΠΈΠ΅» ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΡΠ»Π»ΠΈΠΏΡΠΎΠ². Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΠΎΡΠ° ΡΠ»Π»ΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°Π»ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
Sector (X, Y: Integer; StartAngle, EndAngle, XRadius, YRadius: Word)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠΌΡΡΠ», ΡΡΠΎ ΠΈ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ Arc, Ellipse. Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊΡΡΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΠΎΡΠ° Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ YRadius Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° ΡΠΆΠ°ΡΠΈΡ:
VAR
R, Π, Π: Word; {R — ΡΠ°Π΄ΠΈΡΡ ΠΊΡΡΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΠΎΡΠ°}
BEGIN
GetAspectRatio (Π, Π);
Sector (100, 100, 0, 90, R, R * Longlnt (A) div Π);
END.
ΠΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
PieSlice (X, Y: Integer; StartAngle, EndAngle, Radius: Word)
ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΠΎΡ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
FillEllipse (X, Y: Integer; XRadius, YRadius: Word)
ΡΠΈΡΡΠ΅Ρ ΡΠ»Π»ΠΈΠΏΡ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠΌΡΡΠ», ΠΊΠ°ΠΊ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Ellipse.
ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³ΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
FillPoly (NumPoints: Word; VAR PolyPoints)
ΠΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ DrawPoly. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠ½Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Π»ΠΈΠ½ΠΈΠ΅ΠΉ, ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΡ ΡΠΈΠ³ΡΡΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π»ΠΈΡΠ°.
USES Graph; | {ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ Graph} | |
{$I initgraf. pas} | {ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ} | |
CONST | ||
our_ figure: Array [1.4] of PointType = | ||
(x: 319; y: 40), | {ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΎΠ² } | |
(x: 398; y: 146), | {ΠΎΡΡΠ΅Π·ΠΊΠΎΠ², ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ} | |
(x: 240; Ρ: 146), | {Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ} | |
(x:400; Ρ: 40)); | {ΡΠΈΠ³ΡΡΡ} | |
BEGIN | ||
Grlnit; | { ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΈ} | |
SetFiUStyle (InterleaveFill, Red); | { Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° } | |
{ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΠ³ΡΡΡ} | ||
FillPoly (SizeOf (our.figure) div SizeOf (PointType), our_figure); | ||
ReadLn; | ||
CloseGraph | ||
END. | ||
Π€ΡΠ½ΠΊΡΠΈΡ SizeOf (our_figure) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ our_figure Π² Π±Π°ΠΉΡΠ°Ρ , a SizeOf (PointType) — ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΈΠΏΠ° PointType. Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°
FloodFilt(X, Y: Integer; Border: Word)
ΠΠ½Π° Π·Π°Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΎΠΊΡΡΠ³ ΡΠΎΡΠΊΠΈ (X, Y), ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΡΠΌΠΈ ΡΠ²Π΅ΡΠ° Border. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΡΠΊΠ° (X, Y) Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ½ΠΎΡΡΡΡ, ΡΠΎ Π²ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π»ΠΈΡΠ° ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈ ΡΠ²Π΅ΡΠΎΠΌ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°ΠΌΠΈ SetFillPattern ΠΈΠ»ΠΈ SetFillStyle. ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠΎΡΠΊΠ° Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π²Π½Π΅ ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, ΡΠΎ Π·Π°Π»ΠΈΡΡΠΌ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡ ΡΠΊΡΠ°Π½ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΡΠ»ΠΈ ΠΎΠ±Π»Π°ΡΡΡ Π½Π΅ Π·Π°ΠΌΠΊΠ½ΡΡΠ° ΡΠΏΠ»ΠΎΡΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ ΠΈΠ»ΠΈ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΡΠΊΡΠ°Π½Π°, ΡΠΎ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡΡ Π²Π΅ΡΡ ΡΠΊΡΠ°Π½.
ΠΠΏΡΠΎΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ²Π΅ΡΠΎΠ² ΠΏΠ΅ΡΠ° ΠΈ ΡΠΎΠ½Π°
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π΄Π°ΠΏΡΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π·Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅ΡΠΎΠ², Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΠΊΡΠ°Π½ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ BGI-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΎΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ 0.15. ΠΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ² ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ΅ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ²Π΅ΡΠΎΠ², Π° ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΡ ΡΠ²Π΅ΡΠ° (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Blink), ΠΏΡΠΎΠ΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Graph.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ²Π΅ΡΠ°, Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ Π΄Π°Π½Π½ΡΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
GetMaxColor: Word
ΠΠ° ΡΠΊΡΠ°Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° ΠΈ ΡΠ²Π΅Ρ ΠΏΠ΅ΡΠ°. ΠΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠ³ΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π² ΡΠ΅Π±Π΅ ΡΠ²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²Π΅ΡΠ°, ΡΠΈΡΡΡΡ ΡΡΠΈ ΡΠΈΠ³ΡΡΡ ΡΠ²Π΅ΡΠΎΠΌ ΠΏΠ΅ΡΠ° (ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅). ΠΡΠΎΡ ΡΠ²Π΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
SetColor (Color: Word)
Π¦Π²Π΅Ρ ΡΠΎΠ½Π° — Π²ΡΠ΅Π³Π΄Π° Π΅Π΄ΠΈΠ½ Π² ΠΏΠΎΠ»Π΅ ΡΠΊΡΠ°Π½Π°. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΎΠΉ
SetBkColor (Color: Word)
ΠΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ²Π΅Ρ ΡΠΊΡΠ°Π½Π° ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΠΉ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Color Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ GetMaxColor. Π¦Π²Π΅ΡΠΎΠΌ ΡΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ ΡΠ²Π΅ΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΡΠΊΠΈΠΉ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΠΏΡΠΈ ΡΠ΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΠ²Π΅Ρ ΡΠΎΠ½Π° ΡΠ°Π²Π΅Π½ 0 (Black), Π° ΡΠ²Π΅Ρ ΠΏΠ΅ΡΠ° ΡΠ°Π²Π΅Π½ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ GetMaxColor.
ΠΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΎΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²Π΅ΡΠ°.
Π€ΡΠ½ΠΊΡΠΈΡ GetColor : Word Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ° ΠΏΠ΅ΡΠ°, Π° ΡΡΠ½ΠΊΡΠΈΡ GetBkColor: Word Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ²Π΅Ρ ΡΠΎΠ½Π°.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ
ΠΠ°Π»ΠΈΡΡΠ° ΠΈ Π΅Π΅ Π°Π½Π°Π»ΠΈΠ·. ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠ²Π΅ΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ BGI-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· 16 ΡΠ²Π΅ΡΠΎΠ², ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΡ 0 Π΄ΠΎ 15 (ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² EGA, VGA).
ΠΡΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΡ ΡΠ²Π΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ°Ρ 640×480 Π΄Π»Ρ VGA, 640×350, 640×200 ΠΈ 320×200 Π΄Π»Ρ EGA ΠΊΠ°ΠΊ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ .
Π§ΠΈΡΠ»Π° ΠΎΡ 0 Π΄ΠΎ 15, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡ Π΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ, «ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅» ΡΠ²Π΅ΡΠ°. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΡΠ²Π΅ΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ «Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ» ΡΠ²Π΅Ρ ΠΈΠ· ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° EGA, Π²ΡΠ²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎ 16 ΡΠ²Π΅ΡΠΎΠ², ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ²Π΅ΡΠ° Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ Π² 64 ΡΠ²Π΅ΡΠ°, ΠΈΠΌΠ΅ΡΡΠ΅ΠΉΡΡ Π² ΡΡΠΎΠΌ Π°Π΄Π°ΠΏΡΠ΅ΡΠ΅. Π Π² Π°Π΄Π°ΠΏΡΠ΅ΡΠ΅ VGA Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΠΏΠ°Π»ΠΈΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 256 ΡΠ²Π΅ΡΠΎΠ². ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ²Π΅ΡΠ°ΠΌΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΡΠ΄ ΠΏΡΠΎΡΠ΅Π΄ΡΡ, ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠ°Π»ΠΈΡΡΠΎΠΉ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π΅ΠΉ. Π ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΏ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ°Π»ΠΈΡΡΡ:
CONST
MaxColors = 15; {ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ²Π΅ΡΠ°}
TYPE PaletteType=RECORD
Size | : Byte; | {ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ} | |
Colors: Array [0.MaxColors] of Shortlnt; | |||
END;
ΠΠΎΠ»Π΅ Size ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅ΡΠΎΠ² Π² ΠΏΠ°Π»ΠΈΡΡΠ΅, Π° ΠΏΠΎΠ»Π΅ Colors ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ²Π΅ΡΠ° Π² ΠΏΠ΅ΡΠ²ΡΡ Size ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠΎΡΠ΅Π΄ΡΡΡ GetPalette ΠΈ GetDefaultPalette Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π² ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° PaletteType:
GetDefaultPalette (VAR Palette: PaletteType);
GetPalette (VAR Palette: PaletteType);
ΠΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, Ρ. Π΅. ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° Π²ΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΠ²Π΅ΡΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΡ GetPaletteSize: Word
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΠΏΠ° Word, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ²Π΅ΡΠΎΠ² Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΠ°Π»ΠΈΡΡΡ. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π²Π½ΠΎΠ΅ GetMaxColor+1.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°Π»ΠΈΡΡΡ. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°Π»ΠΈΡΡΡ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Graph ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ°Π·Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΡΠΎΡΠ΅Π΄ΡΡΠ°
SetPalette (ColorNum: Word; Color: Shortlnt)
ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ Π² ΠΏΠ°Π»ΠΈΡΡΠ΅. ColorNum — ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°, Color — Π½ΠΎΠΌΠ΅Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ Π½ΠΈΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ·ΠΎΠ² SetPalette (0, Red) Π΄Π΅Π»Π°Π΅Ρ ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΠΏΠ°Π»ΠΈΡΡΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ Color ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ²Π΅ΡΠ°, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π°Π΄Π°ΠΏΡΠ΅ΡΠ°Ρ EGA (0.63) ΠΈ VGA. ΠΡΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ GraphResult Π²Π΅ΡΠ½Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ grError.
ΠΠΈΡΠΎΠ²ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠΏΡΠΎΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ². Π’ΡΡΠ±ΠΎ ΠΠ°ΡΠΊΠ°Π»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠΊΡΠ°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
GetPixel(X,Y: Integer).
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° WordΠ½ΠΎΠΌΠ΅Ρ ΡΠ²Π΅ΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Π° Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (X, Y). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½ΠΎΠΌΠ΅Ρ ΡΠ²Π΅ΡΠ° Π»Π΅ΠΆΠΈΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0.15, Π·Π½Π°ΡΠ°ΡΠΈΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠΉ Π±Π°ΠΉΡ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π°ΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΠ²Π΅Ρ Π»ΡΠ±ΠΎΠΌΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠΊΡΠ°Π½Π°. ΠΡΠΎΡΠ΅Π΄ΡΡΠ°
PutPixel (X, Y: integer; Color: Word); Π·Π°ΠΆΠΈΠ³Π°Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π² ΡΠΎΡΠΊΠ΅ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ X, Y ΠΏΠΈΠΊΡΠ΅Π» ΡΠ²Π΅ΡΠ° Color.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ
ΠΠ°ΠΌΡΡΡ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠΎΠ² ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΡΡ Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π±ΡΠ»ΠΎ Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΈΡΡΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠΈΠ³ΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π½Π΅Π½ΡΠ»Π΅Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡΠ΅ΡΠ°, ΡΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΡΠ»Π΅Π²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠΈΡΠ°ΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ «ΡΠΊΡΡΡΡΡ» ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΎ ΠΎΠ½Π° ΠΏΠΎΡΠ²ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ (ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ: Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΠΎΡ ΠΎΠ΄ Π»ΡΡΠ° Π² ΠΊΠΈΠ½Π΅ΡΠΊΠΎΠΏΠ΅). ΠΡΠΎΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄Π²Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ: