home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / document / pas60pg.lzh / PG12.MY < prev    next >
Text File  |  1991-02-01  |  41KB  |  1,060 lines

  1.                              âïÇéÇ 12.
  2.  
  3.                            îÄäôGRAPH.
  4.  
  5.      î«ñπ½∞ Graph αÑ὿ºπÑΓ  »«½¡πε  í¿í½¿«ΓÑ¬π  ¿º  í«½ÑÑ  τѼ  50
  6. úαáΣ¿τÑ߬¿σ   »α«úαá¼¼,   ¡áτ¿¡á∩  «Γ  óδß«¬«πα«ó¡Ñóδσ,  Γá¬¿σ  ¬á¬
  7. SetViewPort,      Circle,      Bar3D      ¿½¿      DrawPoly      ñ«
  8. í¿Γ-«α¿Ñ¡Γ¿α«óá¡¡δσ, Γá¬¿σ  ¬á¬ GetImage ¿ PutImage. Å«ññÑনóáεΓß∩
  9. ¡Ñ߬«½∞¬« Γ¿»«ó ½¿¡¿⌐ ¿  ßΓ¿½Ñ⌐  ºá»«½¡Ñ¡¿∩,  ßπΘÑßΓóπÑΓ  ¡Ñ߬«½∞¬«
  10. Γ¿»«ó Φα¿ΣΓ«ó,    ¬«Γ«αδÑ    ¼«ª¡«   πóѽ¿τ¿óáΓ∞,   óδαáó¡¿óáΓ∞   ¿
  11. «α¿Ñ¡Γ¿α«óáΓ∞ óÑαΓ¿¬á½∞¡« ¿½¿ ú«α¿º«¡Γá½∞¡«.
  12.      ä½∩ Γ«ú«  τΓ«íδ  ¬«¼»¿½¿α«óáΓ∞  »α«úαá¼¼π,  ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ
  13. ¼«ñπ½∞ Graph, éá¼ ΓαÑíπÑΓß∩ éáΦ ¿ßσ«ñ¡δ⌐ ¬«ñ, ¬«¼»¿½∩Γ«α ¿ ñ«ßΓπ» ¬
  14. ßΓá¡ñáαΓ¡δ¼  ¼«ñπ½∩¼  ó  TURBO.TPL ¿ ¼«ñπ½ε Graph ó GRAPH.TPU.  ä½∩
  15. Γ«ú« τΓ«íδ óδ»«½¡¿Γ∞ »α«úαá¼¼π,  ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ  ¼«ñπ½∞  Graph,
  16. éá¼ ¡Ñ«íσ«ñ¿¼ «ñ¿¡ ¿½¿ í«½ÑÑ úαáΣ¿τÑ߬¿σ ñαá⌐óÑα«ó (.BGI Σá⌐½δ, ß¼.
  17. ¡¿ªÑ). èα«¼Ñ Γ«ú«, Ñß½¿ éáΦá »α«úαἼᠿ߻«½∞ºπÑΓ ΦΓα¿σ«óδÑ Φα¿ΣΓδ,
  18. éá¼ »«ΓαÑíπÑΓß∩ «ñ¿¡ ¿½¿ í«½ÑÑ Σá⌐½«ó Φα¿ΣΓ«ó (.CHR).
  19.  
  20.  
  21.                              äαá⌐óÑαδ.
  22.  
  23.      âαáΣ¿τÑ߬¿Ñ ñαá⌐óÑαδ   »«ññÑনóáεΓ   ß½ÑñπεΘ¿Ñ    úαáΣ¿τÑ߬¿Ñ
  24. áñá»ΓÑαδ (¿ »«½¡«ßΓ∞ε ß«ó¼ÑßΓ¿¼δÑ ß ¡¿¼¿):
  25.  
  26.           - CGA
  27.           - MCGA
  28.           - EGA
  29.           - VGA
  30.           - Hercules
  31.           - AT&T 400 ßΓ᫬
  32.           - 3270 PC
  33.           - IBM-8514
  34.  
  35.      èáªñδ⌐ ñαá⌐óÑα ß«ñÑαª¿Γ ¬«ñ ¿ ñá¡¡δÑ,  σαá¡∩Θ¿Ñß∩ ó  «Γñѽ∞¡«¼
  36. Σá⌐½Ñ. é«   óαѼ∩   óδ»«½¡Ñ¡¿∩,   »α«µÑñπαá   InitGraph  «»αÑñѽ∩ÑΓ
  37. úαáΣ¿τÑ߬«Ñ πßΓα«⌐ßΓó«,  ºáúαπªáÑΓ ¿ ¿¡¿µ¿á½¿º¿απÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐
  38. úαáΣ¿τÑ߬¿⌐ ñαá⌐óÑα,   »ÑαÑó«ñ¿Γ  ß¿ßΓѼπ  ó  úαáΣ¿τÑ߬¿⌐  αѪ¿¼  ¿
  39. ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ óδºδóáεΘÑ⌐  »α«úαá¼¼Ñ.  Åα«µÑñπαá  CloseGraph
  40. óδúαπªáÑΓ   ñαá⌐óÑα   ¿º   »á¼∩Γ¿   ¿   ó«ßßΓá¡áó½¿óáÑΓ  »αÑñδñπΘ¿⌐
  41. ó¿ñÑ«αѪ¿¼.  éδ ¼«ªÑΓÑ »ÑαѬ½ετ¿Γ∞ß∩ ¼Ñªñπ úαáΣ¿τÑ߬¿¼ ¿  ΓѬßΓ«óδ¼
  42. αѪ¿¼á¼¿ ¿ß»«½∞ºπ∩ RestoreCrtMode ¿ SetGraphMode.  ä½∩ Γ«ú«,  τΓ«íδ
  43. ºáúαπº¿Γ∞ éáΦ ß«íßΓóÑ¡¡δ⌐ ñαá⌐óÑα ¿½¿ ó䬽ετ¿Γ∞  Ñú«  ó  .EXE,  ß¼.
  44. RegisterBGIDriver ó  æ»αáó«τ¡«¼  απ¬«ó«ñßΓóÑ  »« í¿í½¿«ΓѬÑ.
  45.      Graph »«ññÑনóáÑΓ  ¬«¡Σ¿úπαáµ¿ε  ß  ñóπ¼∩  ¼«¡¿Γ«αἿ.  è«úñá
  46. Graph ¿¡¿µ¿á½¿º¿απÑΓß∩  óδº«ó«¼ InitGraph,  ß««ΓóÑΓßΓóπεΘ¿⌐ ¼«¡¿Γ«α
  47. íπñÑΓ óδíαá¡ ñ½∩ ºá»α«ΦÑ¡¡«ú« úαáΣ¿τÑ߬«ú« ñαá⌐óÑαá ¿ αѪ¿¼á. è«úñá
  48. úαáΣ¿τÑ߬á∩ »α«úαἼᠠ ºáóÑαΦáÑΓß∩,  »αÑñδñπΘ¿⌐  ó¿ñÑ«αѪ¿¼  íπñÑΓ
  49. ó«ßßΓá¡«ó½Ñ¡. àß½¿ ó ¬«¡Σ¿úπαᵿ¿ ß ñóπ¼∩ ¼«¡¿Γ«αἿ  íπñÑΓ  óδºóá¡
  50. InitGraph ß   αѪ¿¼«¼  áóΓ««í¡áαπªÑ¡¿∩,  Graph  óδíÑαÑΓ  ¼«¡¿Γ«α  ¿
  51. úαáΣ¿τÑ߬¿⌐ áñá»ΓÑα ¡á  ¬«Γ«α«¼  íπñÑΓ  »«ññÑনóáΓ∞ß∩  úαáΣ¿τÑ߬¿⌐
  52. óδó«ñ ß í«½ÑÑ óδß«¬¿¼ ¬áτÑßΓó«¼.
  53.  
  54.    CGA.BGI         äαá⌐óÑα ñ½∩ IBM CGA, MCGA
  55.    EGAVGA.BGI      äαá⌐óÑα ñ½∩ IBM EGA, VGA
  56.    HERC.BGI        äαá⌐óÑα ñ½∩ ¼«¡«σα«¼¡«ú« Hercules
  57.    ATT.BGI         äαá⌐óÑα ñ½∩ AT&T 6300 (400 ßΓ᫬)
  58.    PC3270.BGI      äαá⌐óÑα ñ½∩ IBM 3270 PC
  59.    IBM8514.BGI     äαá⌐óÑα ñ½∩ IBM 8514
  60.  
  61.  
  62.                         Å«ññÑ᪬á IBM 8514.
  63.  
  64.      Turbo Pascal   »«ññÑনóáÑΓ   úαáΣ¿τÑ߬¿⌐  áñá»ΓÑα  IBM  8514,
  65. ¬«Γ«αδ⌐ ¿¼ÑÑΓ óδß«¬«Ñ αáºαÑΦÑ¡¿Ñ 1024σ768 ¿ »á½¿Γαπ µóÑΓ«ó  256  ¿º
  66. ß»¿ß¬á 256K µóÑΓ«ó. ê¼∩ Σá⌐½á ñαá⌐óÑαá - IBM8514.BGI.
  67.      âαáΣ¿τÑ߬¿⌐ áñá»ΓÑα IBM 8514 ¡Ñ ¼«ªÑΓ íδΓ∞ »αáó¿½∞¡« αáß»«º¡á¡
  68. áóΓ«¼áΓ¿τÑ߬¿ («¡    íπñÑΓ   αáß»«º¡áóáΓ∞ß∩   ¬á¬   áñá»ΓÑα   VGA).
  69. æ½Ññ«óáΓѽ∞¡«, ñ½∩ ¿ß»«½∞º«óá¡¿∩ IBM 8514,  »ÑαѼѡ¡«⌐  GraphDriver
  70. ñ«½ª¡«  íδΓ∞  »α¿ßó«Ñ¡«  º¡áτÑ¡¿Ñ  IBM8514 («¡« «»αÑñѽѡ« ó ¼«ñπ½Ñ
  71. Graph) »α¿ ó맮óÑ InitGraph.  DetectGraph ¿½¿ DETECT ß InitGraph ¡Ñ
  72. ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ß∩   ß  IBM  8514  (Ñß½¿  Γ«½∞¬«  éδ  ¡Ñ  σ«Γ¿ΓÑ
  73. φ¼π½¿α«óáΓ∞ αѪ¿¼ VGA).
  74.      Çñá»ΓÑα IBM  8514  »«ññÑনóáÑΓ  αѪ¿¼δ  IBM8514Lo (640x480) ¿
  75. IBM8514Hi (1024x768).  ÄíÑ φΓ¿ ¬«¡ßΓá¡Γδ «»αÑñѽѡδ ó ¼«ñπ½Ñ Graph.
  76.      IBM 8514  ¿ß»«½∞ºπÑΓ Γα¿ 6-Γ¿ í¿Γ«óδÑ º¡áτÑ¡¿∩ ñ½∩ «»αÑñѽѡ¿∩
  77. µóÑΓ«ó. Ä»αÑñѽѡδ 6-í¿Γ«óδÑ Red (¬αáß¡δ⌐),  Green (ºÑ½Ñ¡δ⌐) ¿ Blue
  78. (ß¿¡¿⌐) ¬«¼»«¡Ñ¡Γδ ñ½∩ ¬áªñ«ú« «»αÑñѽѡ¡«ú« µóÑΓá. ä½∩ «»αÑñѽѡ¿∩
  79. µóÑΓá ó í¿í½¿«ΓѬπ BGI ñ«íáó½Ñ¡á ¡«óá∩ »α«úαá¼¼á:
  80.  
  81.   procedure SetRGBPalette(ColorNum, Red, Green, Blue: Word);
  82.  
  83.      Çαúπ¼Ñ¡Γ ColorNum «»αÑñѽ∩ÑΓ ¡«¼Ñα µóÑΓá ó »á½¿ΓαÑ.
  84.      ColorNum ºáñáÑΓß∩  ó  ñ¿á»áº«¡Ñ 0-255 (ñÑß∩Γ¿τ¡δÑ).  Çαúπ¼Ñ¡Γδ
  85. Red,  Green,  Blue «»αÑñѽ∩εΓ º¡áτÑ¡¿Ñ µóÑΓá ñ½∩ φ½Ñ¼Ñ¡Γá  »á½¿Γαδ.
  86. ä½∩ «»αÑñѽѡ¿∩ »á½¿Γαδ ¿ß»«½∞ºπεΓß∩ 6 ßΓáαΦ¿σ í¿Γ«ó ¼½áñΦÑú« íá⌐Γá
  87. ¬áªñ«ú« ¿º φΓ¿σ »áαá¼ÑΓα«ó.
  88.      äαπú¿Ñ »α«úαá¼¼δ   ¼á¡¿»π½∩µ¿¿   ß   »á½¿Γα«⌐  ¿º  úαáΣ¿τÑ߬«⌐
  89. í¿í½¿«ΓѬ¿ ¡Ñ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ß ñαá⌐óÑα«¼ IBM 8514  (ΓᬿѠ¬á¬
  90. SetAllPalette, SetPalette, GetPalette).
  91.      ä½∩ ß«ó¼ÑßΓ¿¼«ßΓ¿  ß  ñαπú¿¼¿  úαáΣ¿τÑ߬¿¼¿  áñá»ΓÑαἿ   IBM,
  92. ¼«ñπ½∞  Graph  «»αÑñѽ∩ÑΓ  »ÑαóδÑ  16  º¡áτÑ¡¿⌐  »á½¿Γαδ  IBM 8514,
  93. ß««ΓóÑΓßΓóπεΘ¿Ñ   µóÑΓá¼   EGA/VGA.   ¥Γ¿   º¡áτÑ¡¿∩   ¼«úπΓ   íδΓ∞
  94. ¿ß»«½∞º«óá¡δ ¬á¬  «¡¿ «»αÑñÑ½Ñ¡δ ¿½¿ ¿º¼Ñ¡Ñ¡δ,  ¿ß»«½∞ºπ∩ »α«úαá¼¼π
  95. SetRGBPalette.
  96.      Åα«úαá¼¼á FloodFill  ¡Ñ αáí«ΓáÑΓ ¡á áñá»ΓÑαÑ IBM 8514.
  97.      ¥Γ¿ ªÑ «úαá¡¿τÑ¡¿∩ ñÑ⌐ßΓóπεΓ »α¿ ¿ß»«½∞º«óá¡¿¿  VGA  ó  αѪ¿¼Ñ
  98. 256 µóÑΓ«ó.
  99.  
  100.  
  101.                        è««αñ¿¡áΓ¡á∩ ß¿ßΓѼá.
  102.  
  103.      éÑασ¡¿⌐ ½Ñóδ⌐ πú«½ úαáΣ¿τÑ߬«ú« φ¬αá¡á  «»αÑñѽѡ  ¬á¬  (0,0).
  104. ç¡áτÑ¡¿Ñ ò ¿½¿ ¬«½«¡¬¿ πóѽ¿τ¿óáεΓß∩ ¡á»αáó«. ç¡áτÑ¡¿Ñ Y ¿½¿ ßΓ᫬¿
  105. πóѽ¿τ¿óáεΓß∩ ó¡¿º.  Æᬠó αѪ¿¼Ñ 320x200 ¡á áñá»ΓÑαÑ CGA  φ¬αá¡¡δÑ
  106. ¬««αñ¿¡áΓδ  ¬áªñ«ú«  ¿º τÑΓδαÑσ πú½«ó ¿ Γ«τ¬á ó µÑ¡ΓαÑ φ¬αá¡á íπñπΓ
  107. »αÑñßΓáó½Ñ¡δ:
  108.  
  109.               É¿ß. 12.1. ¥¬αá¡ ß ¬««αñ¿¡áΓἿ (X,Y).
  110.  
  111.                  (0,0)                   (319,0)
  112.                     ┌───────────────────────┐
  113.                     │                       │
  114.                     │       (159,99)        │
  115.                     │           .           │
  116.                     │                       │
  117.                     │                       │
  118.                     │                       │
  119.                     └───────────────────────┘
  120.                   (0,199)                  (319,199)
  121.  
  122.  
  123.                         ÆѬπΘ¿⌐ π¬áºáΓѽ∞.
  124.  
  125.      î¡«ú¿Ñ úαáΣ¿τÑ߬¿Ñ  ß¿ßΓÑ¼δ  »«ññÑনóáεΓ   »«¡∩Γ¿Ñ   ΓѬπΘÑú«
  126. π¬áºáΓѽ∩  (CP  -  Current  Pointer).  CP »«ñ«íÑ¡ »«¡∩Γ¿ε ¬παß«αá ó
  127. ΓѬßΓ«ó«¼ αѪ¿¼Ñ, ¡« ó «Γ½¿τ¿Ñ «Γ ¬παß«αá CP ¡Ñ ó¿ñÑ¡.
  128.  
  129.          Write('ABC');
  130.  
  131.      é ΓѬßΓ«ó«¼ αѪ¿¼Ñ «»ÑαáΓ«α  Write  íπñÑΓ  »«¼ÑΘáΓ∞  ¬παß«α  ó
  132. ¬«½«¡¬π  ¡Ñ»«ßαÑñßΓóÑ¡¡« »«ß½Ñ ß¿¼ó«½á C.  àß½¿ C »«¼ÑΘÑ¡ ó ¬«½«¡¬π
  133. 80,  Γ« ¬παß«α »ÑαÑñó¿¡ÑΓß∩ ó »Ñαóπε ¬«½«¡¬π ß½ÑñπεΘÑ⌐ ßΓ᫬¿. àß½¿
  134. C  »«¼ÑΘÑ¡  ó  ¬«½«¡¬π 80 25-«⌐ ßΓ᫬¿,  Γ« óÑß∞ φ¬αá¡ ßñó¿¡ÑΓß∩ ¡á
  135. «ñ¡π ßΓ᫬π óóÑασ ¿ ¬παß«α íπñÑΓ ó »Ñαó«⌐ ¬«½«¡¬Ñ 25 ßΓ᫬¿.
  136.          MoveTo(0, 0);
  137.          LineTo(20, 20);
  138.      é úαáΣ¿τÑ߬«¼  αѪ¿¼Ñ  «»ÑαáΓ«α  LineTo  »«¼ÑßΓ¿Γ  CP  ó Γ«τ¬π
  139. (20,20). éδóÑñÑ¡¡á∩ ½¿¡¿∩  íπñÑΓ  «ΓßÑτÑ¡á  ó  ΓѬπΘѼ  «¬¡Ñ,  Ñß½¿
  140. «ΓßÑτÑ¡¿Ñ ó¬½ετÑ¡«. çá¼ÑΓ¿¼, τΓ« CP ¡¿¬«úñá ¡Ñ «ΓßѬáÑΓß∩.
  141.      è«¼á¡ñá MoveTo φ¬ó¿óá½Ñ¡Γ¡á GotoXY.  Ä¡á  ¿ß»«½∞ºπÑΓß∩  Γ«½∞¬«
  142. ñ½∩  »ÑαѼÑΘÑ¡¿∩  CP.  æ½ÑñπεΘ¿Ñ ¬«¼á¡ñδ »ÑαѼÑΘáεΓ CP:  InitGraph,
  143. MoveTo, MoveRel,   LineTo,    LineRel,    OutText,    SetGraphMode,
  144. GraphDefaults, ClearDevice, SetViewPort, ClearViewPort.
  145.      Åα¿¼Ñτá¡¿Ñ: »«ß½Ññ¡¿Ñ 5 ¬«¼á¡ñ »ÑαѼÑΘáεΓ CP ó (0,0).
  146.  
  147.  
  148.                               ÆѬßΓ.
  149.  
  150.      Å«í¿Γ«óδ⌐ Φα¿ΣΓ  ß  ¼áΓα¿µÑ⌐ 8σ8 ¿ ¡Ñ߬«½∞¬« ΦΓα¿σ«óδσ Φα¿ΣΓ«ó
  151. «»αÑñÑ½Ñ¡δ  ñ½∩  óδó«ñá  ΓѬßΓá  ó   úαáΣ¿τÑ߬«¼   αѪ¿¼Ñ.   æ¿¼ó«½
  152. »«í¿Γ«ó«ú« Φα¿ΣΓá   «»αÑñѽѡ   ó  ¼áΓα¿µÑ  8σ8  »¿¬ßѽ«ó  (Γ«τѬ).
  153. ÿΓα¿σ«óδ⌐ Φα¿ΣΓ  «»αÑñѽѡ   ßÑα¿Ñ⌐   «ΓαѺ¬«ó,   ¬«Γ«αδÑ   ú«ó«α∩Γ
  154. úαáΣ¿τÑ߬«⌐ ß¿ßΓѼѠ¬á¬ α¿ß«óáΓ∞ Φα¿ΣΓ.
  155.      ôñ«íßΓó« ¿ß»«½∞º«óá¡«∩ ΦΓα¿σ«ó«ú« Φα¿ΣΓá »α«∩ó½∩ÑΓß∩, ¬«úñá éδ
  156. ¡áτ¿¡áÑΓÑ  α¿ß«óáΓ∞  í«½∞Φ¿Ñ  ß¿¼ó«½δ.  Å«ß¬«½∞¬π  ΦΓα¿σ«óδ⌐  Φα¿ΣΓ
  157. «»αÑñѽѡ «ΓαѺ¬á¼¿, «¡ «ßΓáÑΓß∩ σ«α«ΦÑú« αáºαÑΦÑ¡¿∩ ¿ ¬áτÑßΓóá »α¿
  158. πóѽ¿τÑ¡¿¿.
  159.      è«úñá »«í¿Γ«óδ⌐ Φα¿ΣΓ  πóѽ¿τ¿óáÑΓß∩,  ¼áΓα¿µá  π¼¡«ªáÑΓß∩  ¡á
  160. ¬«φΣΣ¿µ¿Ñ¡Γ    ¼áßΦΓáí¿α«óá¡¿∩,    ¿    ¬á¬    Γ«½∞¬«   ¬«φΣΣ¿µ¿Ñ¡Γ
  161. ¼áßΦΓáí¿α«óá¡¿∩ ßΓá¡«ó¿Γß∩ í«½∞Φ¿¼,  αáºαÑΦÑ¡¿∩ ß¿¼ó«½«ó ßΓá¡«ó¿Γß∩
  162. úαπíδ¼. ä½∩ ¡Ñí«½∞Φ¿σ ß¿¼ó«½«ó »«í¿Γ«óδ⌐ Φα¿ΣΓ íπñÑΓ φΣΣÑ¬Γ¿óÑ¡, ¡«
  163. ñ½∩ í«½∞Φ«ú« ΓѬßΓá éδ ºáσ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ ΦΓα¿σ«óδ⌐ Φα¿ΣΓ.
  164.      éδαáó¡¿óá¡¿Ñ úαáΣ¿τÑ߬«ú«    ΓѬßΓá   π»αáó½∩ÑΓß∩   »α«µÑñπα«⌐
  165. SetTextJustify. îáßΦΓáí¿α«óá¡¿Ñ   ¿   óδí«α   Φα¿ΣΓá   »α«¿ºó«ñ¿Γß∩
  166. »α«µÑñπα«⌐ SetTextStyle.   âαáΣ¿τÑ߬¿⌐   ΓѬßΓ   óδó«ñ¿Γß∩  ó맮ó«¼
  167. »α«µÑñπαδ OutText ¿½¿ OutTextXY.  çá»α«ß ΓѬπΘ¿σ  πßΓᡫ󫬠 ΓѬßΓá
  168. »α«¿ºó«ñ¿Γß∩  »α«µÑñπα«⌐ GetTextSettings.  ÉẼÑα ΦΓα¿σ«ó«ú« Φα¿ΣΓá
  169. ¼«ªÑΓ íδΓ∞ «»αÑñѽѡ »α«µÑñπα«⌐ SetUserCharSize.
  170.      èáªñδ⌐ ΦΓα¿σ«ó«⌐   Φα¿ΣΓ   σαá¡¿Γß∩   ó   «Γñѽ∞¡«¼   Σá⌐½Ñ  ß
  171. αáßΦ¿αÑ¡¿Ñ¼ .CHR.  öá⌐½δ  Φα¿ΣΓ«ó  ¼«úπΓ  íδΓ∞  ºáúαπªÑ¡δ  ß  ñ¿ß¬á
  172. áóΓ«¼áΓ¿τÑ߬¿ ¼«ñπ½Ñ¼  Graph ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ (¬á¬ «»¿ßá¡«), ¿½¿
  173. «¡¿ ¼«úπΓ íδΓ∞ ó¬½ετÑ¡δ ó »«½∞º«óáΓѽ∞߬πε »α«úαá¼¼π  ¿½¿ ºáúαπªÑ¡δ
  174. Ñ⌐ ¿ "ºáαÑú¿ßΓα¿α«óá¡δ" ¼«ñπ½Ñ¼ Graph.
  175.      æ»Ñµ¿á½∞¡á∩ »α«úαá¼¼á BINOBJ.EXE  «íÑß»Ñτ¿óáÑΓ  »αÑ«íαẫóá¡¿Ñ
  176. Σá⌐½á Φα¿ΣΓ«ó   (¿½¿   ½εí«ú«   ñó«¿τ¡«ú«   Σá⌐½á  ñá¡¡δσ,  ¬«Γ«αδ⌐
  177. ß««ΓóÑΓßΓóπÑΓ Ñ¼π) ó Σá⌐½ .OBJ, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ ó¬½ετÑ¡ ó ¼«ñπ½∞
  178. ¿½¿ »α«úαá¼¼π,  ¿ß»«½∞ºπ∩ ñ¿αÑ¬Γ¿ó𠬫¼»¿½∩Γ«αá {$L}. ¥Γ« »«ºó«½∩ÑΓ
  179. »α«úαἼѠ¿¼ÑΓ∞ óßÑ Σá⌐½δ Φα¿ΣΓ«ó, óßΓα«Ñ¡¡δÑ ó .EXE Σá⌐½. (ù¿Γá⌐ΓÑ
  180. ¬«¼¼Ñ¡Γáα¿⌐ ó ¡áτá½Ñ »α«úαá¼¼δ GRLINK.PAS ¡á ñ¿ßΓα¿íπΓ¿ó¡«¼ ñ¿ß¬Ñ).
  181.  
  182.  
  183.                           ö¿úπαδ ¿ ßΓ¿½¿.
  184.  
  185.      æπΘÑßΓóπÑΓ í«½∞Φ«Ñ τ¿ß½« »α«úαá¼¼ ñ½∩ α¿ß«óá¡¿∩  ¿  ºá»«½¡Ñ¡¿∩
  186. Σ¿úπα,   ó¬½ετá∩   Γ«τ¬¿,   ½¿¡¿¿,   «¬απª¡«ßΓ¿,   ñπú¿,   φ½½¿»ßδ,
  187. »α∩¼«πú«½∞¡¿¬¿, ¼¡«ú«πú«½∞¡¿¬¿,  »«½«ßδ,  3-σ   ¼Ñα¡δÑ   »«½«ßδ   ¿
  188. ßÑ¬Γ«αá.  êß»«½∞º«óá¡¿Ñ  SetLineStyle  »«ºó«½∩ÑΓ π»αáó½∩Γ∞ Γ«½Θ¿¡«⌐
  189. ½¿¡¿⌐ ¿ Γ¿»«¼: ß»½«Φ¡á∩, Γ«τ¬á¼¿ ¿½¿ Γ¿», «»αÑñѽѡ¡δ⌐ éἿ.
  190.      êß»«½∞º«óá¡¿Ñ SetFillStyle   ¿   SetFillPartern,   FillPoly  ¿
  191. FloodPoly »«ºó«½∩ÑΓ ºá»«½¡∩Γ∞ ¼¡«ú«πú«½∞¡¿¬ ΦΓα¿σ«ó¬«⌐  ¿½¿  ñαπú¿¼
  192. ßΓ¿½Ñ¼.
  193.  
  194.  
  195.                       Ä¬¡á ¿ í¿Γ«óδÑ «íαáºδ.
  196.  
  197.      Åα«µÑñπαá SetViewPort ºáßΓáó½∩ÑΓ óßÑ óδó«ñ¡δÑ ¬«¼á¡ñδ αáí«ΓáΓ∞
  198. «Γ¡«ß¿Γѽ∞¡« »α∩¼«πú«½∞¡«⌐  «í½áßΓ¿  φ¬αá¡á («¬¡á ¿½¿ »«½∩ óδó«ñá).
  199. Æ«τ¬¿,  ½¿¡¿¿,  Σ¿úπαδ  -  óÑß∞  úαáΣ¿τÑ߬¿⌐  óδó«ñ  -  ºáó¿ß¿Γ  «Γ
  200. «»αÑñѽѡ¿∩  «¬¡á  (Ñú«  ¬««αñ¿¡áΓ) ñ« ΓÑσ »«α,  »«¬á «¬¡« ¡Ñ íπñÑΓ
  201. ¿º¼Ñ¡Ñ¡«.  äαπú¿Ñ »α«úαá¼¼δ  «íÑß»Ñτ¿óáεΓ  «τ¿ßΓ¬π  «¬¡á  ¿  τΓÑ¡¿Ñ
  202. ΓѬπΘÑú« «»αÑñѽѡ¿∩ «¬¡á. àß½¿ «ΓßÑτÑ¡¿Ñ á¬Γ¿ó¡«, óÑß∞ úαáΣ¿τÑ߬¿⌐
  203. óδó«ñ «ΓßѬáÑΓß∩ »« úαá¡¿µá¼ ΓѬπΘÑú« «¬¡á. çá¼ÑΓ¿¼, τΓ« CP ¡¿¬«úñá
  204. ¡Ñ «ΓßѬáÑΓß∩.
  205.      GetPixel ¿ PutPixel «íÑß»Ñτ¿óáεΓ τΓÑ¡¿Ñ »¿¬ßѽ«ó.  GetImage  ¿
  206. PutImage  ¼«úπΓ  íδΓ∞ ¿ß»«½∞º«óá¡δ ñ½∩ ß«σαá¡Ñ¡¿∩ ¿ óδó«ñá ¡á φ¬αá¡
  207. »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿ φ¬αá¡á. Ä¡¿ «íÑß»Ñτ¿óáεΓ »«½¡δ⌐ ¡áí«α í¿Γ«óδσ
  208. «»Ñαᵿ¿ (¬«»¿α«óá¡¿Ñ, xor, or, and, not).
  209.  
  210.  
  211.                          æΓαá¡¿µδ ¿ µóÑΓ.
  212.  
  213.      æπΘÑßΓóπÑΓ α∩ñ ñαπú¿σ »α«úαá¼¼,  ó¬½ετá∩ »«ññÑαª¬π  ¡Ñ߬«½∞¬¿σ
  214. úαáΣ¿τÑ߬¿σ  ßΓαá¡¿µ  (Γ«½∞¬«  ñ½∩  EGA,  VGA,  Hercules;  «ß«íÑ¡¡«
  215. »«½Ñº¡δ ñ½∩ ¼π½∞Γ¿»½¿¬áµ¿¿), »á½¿Γαδ, µóÑΓá ¿ Γ.».
  216.  
  217.  
  218.                          Äíαáí«Γ¬á «Φ¿í«¬.
  219.  
  220.      é¡πΓαÑ¡¡¿Ñ «Φ¿í¬¿   ó   ¼«ñπ½Ñ   Graph  ó«ºóαáΘáεΓß∩  Σπ¡¬µ¿Ñ⌐
  221. GraphResult.   GraphResult   ó«ºóαáΘáÑΓ   ¬«ñ   «Φ¿í¬¿    »«ß½Ññ¡Ñ⌐
  222. úαáΣ¿τÑ߬«⌐ «»Ñαᵿ¿. è«ñδ «Φ¿í«¬ «»αÑñѽѡδ ó Γáí½¿µÑ 12.2.
  223.      æ½ÑñπεΘ¿Ñ »α«úαá¼¼δ πßΓá¡áó½¿óáεΓ GraphResult:
  224.  
  225.        Bar                  ImageSize              SetFillPattern
  226.        Bar3D                InitGraph              SetFillStyle
  227.        ClearViewPort        InstallUserDriver      SetGraphBufSize
  228.        CloseGraph           InstallUserFont        SetGraphMode
  229.        DelectGraph          PieSlice               SetLineStyle
  230.        DrawPoly             RegisterBGIdriver      SetPalette
  231.        FillPoly             RegisterBGIfont        SetTextJustify
  232.        FloodFill            SetAllPalette          SetTextStyle
  233.        GetGraphMode
  234.  
  235.      çá¼ÑΓ¿¼, τΓ« GraphResult  πßΓá¡áó½¿óáÑΓß∩  ó  ¡«½∞  »«ß½Ñ  Ñú«
  236. ó맮óá. æ½Ññ«óáΓѽ∞¡«,   »α«úαá¼¼¿ßΓ   ñ«½ªÑ¡   ºá»«¼¡¿Γ∞  º¡áτÑ¡¿Ñ
  237. GraphResult ó«   óαѼѡ¡«⌐   »ÑαѼѡ¡«⌐,    á    ºáΓѼ    »α«óÑα∩Γ∞
  238. Ñú«.
  239.  
  240.  
  241.                           ìáτὫ αáí«Γδ.
  242.  
  243.      Åα¿¼Ñα »α«ßΓ«⌐ »α«úαá¼¼δ:
  244.  
  245.      program GraphText;
  246.      uses
  247.        Graph;
  248.      var
  249.        GraphDriver,
  250.        GraphMode,
  251.        ErrorCode : Integer;
  252.      begin
  253.        GraphDriver :=Detect;
  254.        InitGraph(GraphDriver, GraphMode,'C:\DRIVERS');
  255.        ErrorCode :=GraphResult;
  256.        if ErrorCode <> grOK then     {«Φ¿í¬á  }
  257.        begin
  258.          Writeln('Graphics error: ', GraphErrorMsg(ErrorCode));
  259.          Writeln('Program aborted...');
  260.          Halt(1);
  261.        end;
  262.        Rectangle(0, 0, GetMaxX, GetMaxY); {α¿ß«óáΓ∞ »α∩¼«πú«½∞¡¿¬
  263.                                            ¡á óÑß∞ φ¬αá¡}
  264.        SetTextJustify(CenterText, CenterText);  {µÑ¡Γα¿α«óáΓ∞
  265.                                                  ΓѬßΓ}
  266.        SetTextStyle(DefaultFint, Horez Dir 3);
  267.        OutTextXY(GetMaxX  div  2,  GetMaxY  div  2,
  268.                  'Borland Graphics interface (BGI)');
  269.        Readln;
  270.        CloseGraph;
  271.      end.  {GraphTest}
  272.  
  273.      Åα«úαἼᠡáτ¿¡áÑΓß∩ ß ó맮óá InitGraph, ¬«Γ«αδ⌐ áóΓ«¼áΓ¿τÑ߬¿
  274. «»αÑñѽ∩ÑΓ  á»»áαáΓπαπ  ¿  ºáúαπªáÑΓ  ß««ΓóÑΓßΓóπεΘ¿⌐   úαáΣ¿τÑ߬¿⌐
  275. ñαá⌐óÑα (¿º ß»αáó«τ¡¿¬á æ:\DRIVERS). àß½¿ úαáΣ¿τÑ߬«Ñ πßΓα«⌐ßΓó« ¡Ñ
  276. αáß»«º¡á¡« ¿½¿ ó« óαѼ∩ ¿¡¿µ¿á½¿ºáµ¿¿  »α«¿º«Φ½á  «Φ¿í¬á,  óδñáÑΓß∩
  277. ß««íΘÑ¡¿Ñ «í   «Φ¿í¬Ñ  ¿  »α«úαἼᠠºáóÑαΦáÑΓß∩.  ê¡áτÑ,  τÑαΓ¿Γß∩
  278. »α∩¼«πú«½∞¡¿¬ »« ¬αáε φ¬αá¡á ¿ ó µÑ¡ΓαÑ φ¬αá¡á óδó«ñ¿Γß∩ ΓѬßΓ.
  279.      Åα¿¼Ñτá¡¿Ñ: Çñá»ΓÑαδ  AT&T  400  ¿  IBM 8514 ¡Ñ½∞º∩ αáß»«º¡áΓ∞
  280. áóΓ«¼áΓ¿τÑ߬¿. ä½∩ ¿ß»«½∞º«óá¡¿∩ φΓ¿σ ñαá⌐óÑα«ó éá¼  ¡πª¡« «Γ¼Ñ¡¿Γ∞
  281. áóΓ««í¡áαπªÑ¡¿Ñ  ¿  »ÑαÑñáΓ∞  ó InitGraph ¬«ñ ñαá⌐óÑαá ¿ »αáó¿½∞¡δ⌐
  282. ¬«ñ úαáΣ¿τÑ߬«ú« αѪ¿¼á. ìá»α¿¼Ñα, τΓ«íδ ¿ß»«½∞º«óáΓ∞ ñαá⌐óÑα AT&T,
  283. ºá¼Ñ¡¿ΓÑ ßΓ᫬¿ 9 ¿ 10 ó »αÑñδñπΘѼ »α¿¼ÑαÑ ¡á:
  284.  
  285.         GraphDriver := ATT400;
  286.         GraphMode   := ATT400Hi;
  287.         InitGraph(GraphDriver, GraphMode, 'C:\DRIVERS');
  288.  
  289.      ¥Γ« π¬áºδóáÑΓ  ß¿ßΓѼѠºáúαπº¿Γ∞ ñαá⌐óÑα AT&T 400 ¿ πßΓá¡«ó¿Γ∞
  290. úαáΣ¿τÑ߬¿⌐ αѪ¿¼ 640x400 Γ«τѬ.
  291.      Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ »α¿¼Ñα ñѼ«¡ßΓα¿απÑΓ ó«º¼«ª¡«ßΓ∞ »ÑαѬ½ετÑ¡¿∩
  292. ¼Ñªñπ úαáΣ¿τÑ߬¿¼ ¿ ΓѬßΓ«óδ¼ αѪ¿¼á¼¿:
  293.  
  294.    program GraphText;
  295.    uses
  296.      Graph;
  297.    var
  298.      GraphDriver,
  299.      GraphMode,
  300.      ErrorCode : Integer;
  301.    begin
  302.      GraphDriver :=Detect;
  303.      InitGraph(GraphDriver, GraphMode, 'C:\DRIVERS');
  304.      ErrorCode :=GraphResult;
  305.      if ErrorCode <> grOK then     {«Φ¿í¬á}
  306.      begin
  307.         Writeln(Graphics error: ', GraphErrorMsg(ErrorCode));
  308.         Writeln('Program aborted...');
  309.         Halt(1);
  310.       end;
  311.       OutText('InGraphiesMode. Press<Return>');
  312.       Readln;
  313.       RestoreCRTMode;
  314.       Writeln('Now in text mode. Press<Return>');
  315.       Readln;
  316.       SetGraphMode(GraphMode);
  317.       OutText('Back in Graphics mode. Press<Return>');
  318.       Readln;
  319.       CloseGraph;
  320.     end. {GraphTest}
  321.  
  322.  
  323.      çá¼ÑΓ¿¼, τΓ« ó맮ó SetGraphMode πßΓá¡áó½¿óáÑΓ  óßÑ úαáΣ¿τÑ߬¿Ñ
  324. »áαá¼ÑΓαδ (»á½¿Γαπ,  ΓѬπΘ¿⌐ π¬áºáΓѽ∞, µóÑΓá ¿ Γ.».) ó º¡áτÑ¡¿Ñ »«
  325. π¼«½τá¡¿ε.
  326.      é맮ó CloseGraph  óoßßΓá¡áó½¿óáÑΓ  ó¿ñÑ«αѪ¿¼,   ¬«Γ«αδ⌐   íδ½
  327. πßΓá¡«ó½Ñ¡ ñ«  ó맮óá InitGraph ¿ «ßó«í«ªñáÑΓ »á¼∩Γ∞,  ¿ß»«½∞ºπѼπε
  328. úαáΣ¿τÑ߬¿¼ ñαá⌐óÑα«¼.
  329.  
  330.  
  331.            Å«½∞º«óáΓѽ∞߬¿Ñ »α«úαá¼¼δ π»αáó½Ñ¡¿∩ ¬πτÑ⌐.
  332.  
  333.      î«ñπ½∞ Graph   ¿ß»«½∞ºπÑΓ   ñóÑ  »α«úαá¼¼δ  π»αáó½Ñ¡¿∩  ¬πτÑ⌐:
  334. GraphGetMem ¿ GraphFreeMem.  GraphGetMem  αáß»αÑñѽ∩ÑΓ  »á¼∩Γ∞  ñ½∩
  335. ñαá⌐óÑα«ó úαáΣ¿τÑ߬«ú« πßΓα«⌐ßΓóá, Φα¿ΣΓ«ó ¿ ß¬á¡¿απεΘÑú« íπΣÑαá.
  336.      GraphFreeMem «ßó«í«ªñáÑΓ   »á¼∩Γ∞   αáß»αÑñѽѡ¡πε   ñαá⌐óÑαπ.
  337. æΓá¡ñáαΓ¡δÑ »α«úαá¼¼δ ¿¼ÑεΓ ó¿ñ:
  338.  
  339.      procedure GraphGetMem (var P: Pointer; Size: Word);
  340.      procedure GraphFreeMem (var P: Pointer; Size: Word);
  341.  
  342.      î«ñπ½∞ Graph  «»αÑñѽ∩ÑΓ  ñóá  π¬áºáΓѽ∩  ñ½∩  ßß佬¿  ¡á  φΓ¿
  343. ßΓá¡ñáαΓ¡δÑ »α«úαá¼¼δ. ¥Γ¿ π¬áºáΓѽ¿ «»αÑñѽѡδ Γá¬:
  344.  
  345.  var
  346.    GraphGetMemPtr : Pointer; {π¬áºáΓѽ∞ ¡á »α«úαá¼¼π αáß»αÑñѽѡ¿∩
  347.                               »á¼∩Γ¿}
  348.    GraphFreeMemPtr : Pointer; {π¬áºáΓѽ∞ ¡á »α«úαá¼¼π «ßó«í«ªñÑ¡¿∩
  349.                                »á¼∩Γ¿}
  350.  
  351.      Åα«úαá¼¼δ π»αáó½Ñ¡¿∩  ¬πτÑ⌐,  ßß佬¿  ¡á  ¬«Γ«αδÑ  σαá¡∩Γß∩  ó
  352. GraphGetMemPtr ¿  GraphFreeMemPtr,  óδºδóáεΓß∩  ¼«ñπ½Ñ¼  Graph  ñ½∩
  353. αáß»αÑñѽѡ¿∩ ¿ «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿ ñ½∩:
  354.      - ¼¡«ú«µÑ½Ñó«ú« íπΣÑαá,  αẼÑα ¬«Γ«α«ú« ¼«ªÑΓ íδΓ∞ πßΓá¡«ó½Ñ¡
  355. »α«úαá¼¼«⌐ SetGraphBufSize (»« π¼«½τá¡¿ε 4 èíá⌐Γá)
  356.      - ñαá⌐óÑαá πßΓα«⌐ßΓóá, ºáúαπªáѼ«ú« InitGraph (*.BGI Σá⌐½δ)
  357.      - Σá⌐½á  ΦΓα¿σ«ó«ú«  Φα¿ΣΓá,  ºáúαπªáѼ«ú« SetTextStyle (*.CHR
  358. Σá⌐½δ)
  359.      âαáΣ¿τÑ߬¿⌐ íπΣÑα   óßÑúñá   αáß»αÑñѽ∩ÑΓß∩  ó  ¬πτÑ.  äαá⌐óÑα
  360. πßΓα«⌐ßΓóá αáß»αÑñѽ∩ÑΓß∩ ó ¬πτÑ,  Ñß½¿ Γ«½∞¬«  éáΦá  »α«úαἼᠠ¡Ñ
  361. ºáúαπº¿½á Ñú« ¿ ¡Ñ πßΓá¡«ó¿½á ßó∩º∞ »α¿ »«¼«Θ¿ RegisterBGIdriver; ¿
  362. Σá⌐½ Φα¿ΣΓ«ó αáß»αÑñѽ∩ÑΓß∩ ó ¬πτÑ,  ¬«úñá éδ  óδí¿αáÑΓÑ  ΦΓα¿σ«ó«⌐
  363. Φα¿ΣΓ ¿ß»«½∞ºπ∩  SetTextStyle,  Ñß½¿  Γ«½∞¬«  éáΦá »α«úαá¼¼á Ñú« ¡Ñ
  364. ºáúαπº¿½á ¿½¿ ¡Ñ ßó∩ºá½á, ¿ß»«½∞ºπ∩ ó맮ó RegisterBGIfont.
  365.      Åα¿ ¿¡¿µ¿á½¿ºáµ¿¿  ¼«ñπ½∩  Graph  φΓ¿  π¬áºáΓѽ¿  π¬áºδóáεΓ ¡á
  366. ßΓá¡ñáαΓ¡δÑ »α«úαá¼¼δ αáß»αÑñѽѡ¿∩ ¿ «ßó«í«ªñÑ¡¿∩  »á¼∩Γ¿, ¬«Γ«αδÑ
  367. «»αÑñѽѡδ ó   αáºñѽѠ  implementation  ¼«ñπ½∩  Graph.  éδ  ¼«ªÑΓÑ
  368. óßΓáó¿Γ∞  éáΦ¿  »α«úαá¼¼δ  π»αáó½Ñ¡¿∩  »á¼∩Γ∞ε   »α¿ßó«Ñ¡¿Ñ¼   φΓ¿¼
  369. π¬áºáΓѽ∩¼ áñαÑß«ó φΓ¿σ »α«úαá¼¼. éáΦ¿ »α«úαá¼¼δ ñ«½ª¡δ ¿¼ÑΓ∞ Γᬫ⌐
  370. ªÑ ß»¿ß«¬ »áαá¼ÑΓα«ó,  τΓ« ¿ ßΓá¡ñáαΓ¡δÑ »α«úαá¼¼δ  ¿  ñ«½ª¡δ  íδΓ∞
  371. «íΩ∩ó½Ñ¡δ ¬á¬ ñá½∞¡¿Ñ (far).
  372.      Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ   »α¿¼Ñα    ñѼ«¡ßΓα¿απÑΓ    »«½∞º«óáΓѽ∞߬¿Ñ
  373. »α«úαá¼¼δ αáß»αÑñѽѡ¿∩   ¿   «ßó«í«ªñÑ¡¿∩   »á¼∩Γ¿.  çá¼ÑΓ¿¼,  τΓ«
  374. ¿ß»«½∞º«óá¡¿Ñ  MgExitProc  áóΓ«¼áΓ¿τÑ߬¿  óδºδóáÑΓ  CloseGraph  »α¿
  375. ºáóÑαΦÑ¡¿¿ »α«úαá¼¼δ:
  376.  
  377.      program UserHeapManagment;
  378.      {»«¬áºδóáÑΓ ¬á¬ »«½∞º«óáΓѽ∞ ¼«ªÑΓ ß«ßΓáó½∩Γ∞ »α«úαá¼¼δ
  379.       π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε, ¿ß»«½∞ºπ∩ ¼«ñπ½∞ Graph}
  380.      uses
  381.         Graph;
  382.      var
  383.         GraphDriver, GraphMode: Integer;
  384.         ErrorCode: Integer;  { êß»«½∞ºπÑΓß∩ ñ½∩ ºá»«¼¿¡á¡¿∩ ¬«ñá
  385.                                ó«ºóαáΘáѼ«ú« GraphResult }
  386.  
  387.         PreGraphExitProc: Pointer; { êß»«½∞ºπÑΓß∩ ñ½∩ ß«σαá¡Ñ¡¿∩
  388.                                      »Ñαó«¡áτá½∞¡«⌐ »α«µÑñπαδ
  389.                                      óδσ«ñá }
  390.  
  391.        ($F+)  { Åα«úαá¼¼á ñ«½ª¡á íδΓ∞ ñá½∞¡Ñ⌐ ¼«ñѽ¿ }
  392.  
  393.      procedure MyGetMeM(var P: Pointer; Size: Word); far;
  394.      { Éáß»αÑñѽ∩ÑΓ  »á¼∩Γ∞ ñ½∩ ñαá⌐óÑαá úαáΣ¿τÑ߬«ú«
  395.        πßΓα«⌐ßΓóá, Φα¿ΣΓá ¿ ß¬á¡¿απεΘÑú« íπΣÑαá }
  396.      begin
  397.        GetMet(P, Size);
  398.      end; { MyGetMem }
  399.  
  400.      procedure MyFreeMem(var P: Pointer; Size: Word); far;
  401.      { Äßó«í«ªñáÑΓ »á¼∩Γ∞ úαáΣ¿τÑ߬«ú« ñαá⌐óÑαá, Φα¿ΣΓá ¿
  402.        ß¬á¡¿απεΘÑú« íπΣÑαá }
  403.      begin
  404.         if P <> nil then   { ìÑ «ßó«í«ªñáÑΓ Ñß½¿ π¬áºáΓѽ∞ nil
  405.                              (»πßΓ«⌐)}
  406.         begin
  407.            FreeMen(P, Size);
  408.            P := nil;
  409.         end;
  410.      end; { MyFreeMem }
  411.  
  412.      procedure MyExitProc; far;
  413.      { Å«½πτáÑΓ π»αáó½Ñ¡¿Ñ »α¿ ºáóÑαΦÑ¡¿¿ »α«úαá¼¼δ }
  414.      begin
  415.         ExitProc :=  PreGraphExitProc; { é«ßßΓá¡áó½¿óáÑΓ »Ñαó«-
  416.                                          ¡áτá½∞¡πε »α«µÑñπαπ }
  417.         CloseGraph; { Äτ¿ΘáÑΓ ¬πτπ }
  418.      end; ( MyExitProc )
  419.  
  420.      ($F-)
  421.      begin
  422.         { ê¡ßΓ὿απÑΓ »α«úαá¼¼π óδσ«ñá }
  423.         PreGraphExitProc := ExitProc;
  424.         ExitProc := @MyExitProc;
  425.         GraphGetMemPtr := @MyGetMem;  { ô»αáó½Ñ¡¿Ñ αáß»αÑñѽѡ¿Ñ¼
  426.                                         »á¼∩Γ¿ }
  427.         GraphFreeMemPtr := @MyFreeMem; { ô»αáó½Ñ¡¿Ñ «ßó«í«ªñÑ¡¿Ñ¼
  428.                                          »á¼∩Γ¿ }
  429.         GraphDriver := Detect;
  430.         InitGraph(GraphDriver, GraphMode, '');
  431.         ErrorCode := GraphResult;
  432.         if ErrorCode <> grOk then
  433.         begin
  434.            Writeln('Graphics error: ', GraphErrorMsg(ErrorCode));
  435.            Readln;
  436.            Halt(1);
  437.         end;
  438.         Line(0, 0, GetMaxX, GetMaxY);
  439.         OutTextXY(1, 1, 'Press <Return>:');
  440.         Readln;
  441.      end.   { UserHeapManagment }
  442.  
  443.  
  444.              è«¡ßΓá¡Γδ, Γ¿»δ ¿ »ÑαѼѡ¡δÑ ¼«ñπ½∩ Graph.
  445.  
  446.                              è«¡ßΓá¡Γδ.
  447.  
  448.       êß»«½∞ºπ⌐ΓÑ φΓ¿ ¬«¡ßΓá¡Γδ ñαá⌐óÑα«ó  ¿  αѪ¿¼«ó  ß InitGraph,
  449. DetectGraph ¿ GetModeRange:
  450.  
  451. ───────────────────────────────────────────────────────────────────
  452.   è«¡ßΓá¡Γá      ç¡áτÑ¡¿Ñ              Ä»¿ßá¡¿Ñ
  453. ───────────────────────────────────────────────────────────────────
  454.   Detect             0       çá»αáΦ¿óáÑΓ   áóΓ««í¡áαπªÑ¡¿Ñ
  455.   CGA                1
  456.   MCGA               2
  457.   EGA                3
  458.   EGA64              4
  459.   EGAMono            5
  460.   IBM8514            6
  461.   HercMono           7
  462.   ATT400             8
  463.   VGA                9
  464.   PC3270            10
  465.   CurrentDriver   -128    ÅÑαÑñáÑΓß∩ ó GetModeRange
  466.  
  467.   CGAC0              0    320x200 »á½¿Γαá 0: LightGreen,
  468.                           LightRed, Yellow; 1 ßΓαá¡¿µá
  469.   CGAC1              1    320x200 »á½¿Γαá 1: LightCyan,
  470.                           LightMagenta, White; 1 ßΓαá¡¿µá
  471.   CGAC2              2    320x200 »á½¿Γαá 2: Green,
  472.                           Red, Brown; 1 ßΓαá¡¿µá
  473.   CGAC3              3    320x200 »á½¿Γαá 3: Cyan,
  474.                           Magenta, LightGray; 1 ßΓαá¡¿µá
  475.   CGAHi              4    640x200 1 ßΓαá¡¿µá
  476.  
  477.   MCGAC0             0    320x200 »á½¿Γαá 0: LightGreen,
  478.                           LightRed, Yellow; 1 ßΓαá¡¿µá
  479.   MCGAC1             1    320x200 »á½¿Γαá 1: LightCyan,
  480.                           LightMagenta, White; 1 ßΓαá¡¿µá
  481.   MCGAC2             2    320x200 »á½¿Γαá 2: Green,
  482.                           Red, Brown; 1 ßΓαá¡¿µá
  483.   MCGAC3             3    320x200 »á½¿Γαá 3: Cyan,
  484.                           Magenta, LightGray; 1 ßΓαá¡¿µá
  485.   MCGAMed            4    640x200 1 ßΓαá¡¿µá
  486.   MCGAHi             5    640x480 1 ßΓαá¡¿µá
  487.  
  488.   EGALo              0    640x200 16 µóÑΓ«ó 4 ßΓαá¡¿µδ
  489.   EGAHi              1    640x350 16 µóÑΓ«ó 2 ßΓαá¡¿µδ
  490.   EGA64Lo            0    640x200 16 µóÑΓ«ó 1 ßΓαá¡¿µá
  491.   EGA64Hi            1    640x350 4 µóÑΓá  1 ßΓαá¡¿µá
  492.   EGAMonoHi          3    640x350 64K: 1 ßΓαá¡¿µá;
  493.                           256K: 2 ßΓαá¡¿µδ
  494.  
  495.   HercMonoHi         0    720x348 2 ßΓαá¡¿µδ
  496.  
  497.   ATT400C0           0    320x200 »á½¿Γαá 0: LightGreen,
  498.                           LightRed, Yellow; 1 ßΓαá¡¿µá
  499.   ATT400C1           1    320x200 »á½¿Γαá 1: LightCyan,
  500.                           LightMagenta, White; 1 ßΓαá¡¿µá
  501.   ATT400C2           2    320x200 »á½¿Γαá 2: Green,
  502.                           Red, Brown; 1 ßΓαá¡¿µá
  503.   ATT400C3           3    320x200 »á½¿Γαá 3: Cyan,
  504.                           Magenta, LightGray; 1 ßΓαá¡¿µá
  505.   ATT400Med          4    640x200 1 ßΓαá¡¿µá
  506.   ATT400Hi           5    640x400 1 ßΓαá¡¿µá
  507.  
  508.   VGALo              0    640x200 16 µóÑΓ«ó 4 ßΓαá¡¿µδ
  509.   VGAMed             1    640x350 16 µóÑΓ«ó 2 ßΓαá¡¿µδ
  510.   VGAHi              2    640x480 16 µóÑΓ«ó 1 ßΓαá¡¿µá
  511.  
  512.   PC3270Hi           0    720x350 1 ßΓαá¡¿µá
  513.  
  514.   IBM8514LO          0    640x480 256 µóÑΓ«ó
  515.   IBM8514HI          1    1024x768 256 µóÑΓ«ó
  516. ───────────────────────────────────────────────────────────────────
  517.  
  518.      ç¡áτÑ¡¿∩ «Φ¿í«¬, ó«ºóαáΘáѼδÑ GraphResult:
  519.  
  520.             Æáí½¿µá 12.2. ç¡áτÑ¡¿∩ «Φ¿í«¬ GraphResult.
  521.  
  522. ───────────────────────────────────────────────────────────────────
  523. è«¡ßΓá¡Γá          ç¡áτÑ¡¿Ñ             Ä»¿ßá¡¿Ñ
  524. ───────────────────────────────────────────────────────────────────
  525.   grOk                0     ¡ÑΓ «Φ¿í«¬
  526.   grNoInitGraph      -1     úαáΣ¿¬á ¡Ñ ¿¡¿µ¿á½¿º¿α«óá¡¡á
  527.                             (¿ß»«½∞ºπ⌐ΓÑ InitGraph)
  528.   grNotDetected      -2     úαáΣ¿τÑ߬«Ñ πßΓα«⌐ßΓó« ¡Ñ «í¡áαπªÑ¡«
  529.   grFileNotFound     -3     Σá⌐½ ñαá⌐óÑαá πßΓα«⌐ßΓóá ¡Ñ ¡á⌐ñÑ¡
  530.   grInvalidDriver    -4     ¡Ñ»αáó¿½∞¡δ⌐ Σá⌐½ ñαá⌐óÑαá πßΓα«⌐ßΓóá
  531.   grNoLoadMem        -5     ¡Ñ ñ«ßΓáΓ«τ¡« »á¼∩Γ¿ ñ½∩ ºáúαπº¬¿
  532.                             ñαá⌐óÑαá
  533.   grNoScanMem        -6     óδσ«ñ ºá »αÑñÑ½δ »á¼∩Γ¿ »α¿ ºá»«½¡Ñ¡¿¿
  534.                             (scan fill)
  535.   grNoFloodMem       -7     óδσ«ñ ºá »αÑñÑ½δ »á¼∩Γ¿ »α¿ ºá»«½¡Ñ¡¿¿
  536.                             (flood fill)
  537.   grFontNotFound     -8     Σá⌐½ Φα¿ΣΓá ¡Ñ ¡á⌐ñÑ¡
  538.   grNoFontMem        -9     ¡Ñ ñ«ßΓáΓ«τ¡« »á¼∩Γ¿ ñ½∩ ºáúαπº¬¿
  539.                             Φα¿ΣΓá
  540.   grInvalidMode     -10     ¡ÑóÑα¡δ⌐ úαáΣ¿τÑ߬¿⌐ αѪ¿¼ ñ½∩ φΓ«ú«
  541.                             ñαá⌐óÑαá
  542.   grError           -11     úαáΣ¿τÑ߬á∩ «Φ¿í¬á
  543.   grIOerror         -12     «Φ¿í¬á úαáΣ¿τÑ߬«ú« óó«ñá/óδó«ñá
  544.   grInvalidFont     -13     ¡ÑóÑα¡δ⌐ Σá⌐½ Φα¿ΣΓá
  545.   grInvalidFontNum  -14     ¡ÑóÑα¡δ⌐ ¡«¼Ñα Φα¿ΣΓá
  546. ───────────────────────────────────────────────────────────────────
  547.  
  548.                    SetPalette  ¿ SetAllPalette.
  549.  
  550.      êß»«½∞ºπ⌐ΓÑ   φΓ¿   ¬«¡ßΓá¡Γδ   µóÑΓ«ó   ß   SetPalette    ¿
  551. SetAllPalette: 
  552.  
  553.    ───────────────────────────────
  554.     è«¡ßΓá¡Γá        ç¡áτÑ¡¿Ñ
  555.    ───────────────────────────────
  556.      Black              0
  557.      Blue               1
  558.      Green              2
  559.      Cyan               3
  560.      Red                4
  561.      Magenta            5
  562.      Brown              6
  563.      LightGray          7
  564.      DarkGray           8
  565.      LightBlue          9
  566.      LightGreen        10
  567.      LightCyan         11
  568.      LightRed          12
  569.      LightMagenta      13
  570.      Yellow            14
  571.      White             15
  572.    ───────────────────────────────
  573.  
  574.  
  575.                           SetRGBPalette.
  576.  
  577.      ¥Γ¿ ¬«¡ßΓá¡Γδ µóÑΓ«ó ¼«úπΓ íδΓ∞  ¿ß»«½∞º«óá¡δ ß  SetRGBPalette
  578. ñ½∩ óδí«αá ßΓá¡ñáαΓ¡δσ EGA µóÑΓ«ó ¡á úαáΣ¿τÑ߬«¼ áñá»ΓÑαÑ IBM 8514:
  579.  
  580.    ───────────────────────────────
  581.     è«¡ßΓá¡Γá       ç¡áτÑ¡¿Ñ
  582.    ───────────────────────────────
  583.     EGABlack           0 ΓѼ¡δÑ µóÑΓá 
  584.     EGABlue            1
  585.     EGAGreen           2
  586.     EGACyan            3
  587.     EGARed             4
  588.     EGAMagenta         5
  589.     EGABrown          20
  590.     EGALightGray       7
  591.  
  592.     EGADarkGray       56  ßóÑΓ½δÑ µóÑΓá
  593.     EGALightBlue      57
  594.     EGALightGreen     58
  595.     EGALightCyan      59
  596.     EGALightRed       60
  597.     EGALightMagenta   61
  598.     EGAYellow         62
  599.     EGAWhite          63
  600.    ───────────────────────────────
  601.  
  602.  
  603.                       è«¡ßΓá¡Γδ Γ¿»«ó ½¿¡¿⌐.
  604.  
  605.      êß»«½∞ºπ⌐ΓÑ φΓ¿ ¬«¡ßΓá¡Γδ  Γ¿»«ó  ½¿¡¿⌐  ß  GetLineSettings  ¿
  606. SetLineStyle: 
  607.  
  608.    ───────────────────────────────
  609.     è«¡ßΓá¡Γá       ç¡áτÑ¡¿Ñ
  610.    ───────────────────────────────
  611.      SolidLn          0
  612.      DottedLn         1
  613.      CenterLn         2
  614.      DashedLn         3
  615.      UserBitLn        4  Æ¿» ½¿¡¿¿, «»αÑñѽ∩Ѽδ⌐ »«½∞º«óáΓѽѼ
  616.      NormWidth        1
  617.      ThickWidth       3
  618.    ───────────────────────────────
  619.  
  620.  
  621.                    è«¡ßΓá¡Γδ π»αáó½Ñ¡¿∩ Φα¿ΣΓ«¼.
  622.  
  623.     êß»«½∞ºπ⌐ΓÑ φΓ¿  ¬«¡ßΓá¡Γδ  ß  GetTextSettings  ¿ SetTextStyle:
  624.  
  625.    ───────────────────────────────
  626.     è«¡ßΓá¡Γá       ç¡áτÑ¡¿Ñ
  627.    ───────────────────────────────
  628.      DefaultFont       0  8x8 í¿Γ«óδ⌐ Φα¿ΣΓ
  629.      TriplexFont       1  ÿΓα¿σ«óδÑ Φα¿ΣΓδ
  630.      SmallFont         2
  631.      SansSerifFont     3
  632.      GothicFont        4
  633.  
  634.      HorizDir          0  ß½Ñóá ¡á»αáó«
  635.      VertDir           1  ß¡¿ºπ óóÑασ
  636.  
  637.      UserCharSize      0  αẼÑα ß¿¼ó«½á, «»αÑñѽ∩Ѽδ⌐
  638.                           »«½∞º«óáΓѽѼ
  639.    ───────────────────────────────
  640.  
  641.  
  642.                       è«¡ßΓá¡Γδ óδαáó¡¿óá¡¿∩.
  643.  
  644.      ¥Γ¿ ¬«¡ßΓá¡Γδ   π»αáó½∩εΓ   ú«α¿º«¡Γá½∞¡δ¼   ¿    óÑαΓ¿¬á½∞¡δ¼
  645. óδαáó¡¿ó᡿Ѽ ñ½∩ SetTextJustify:
  646.  
  647.    ───────────────────────────────
  648.     è«¡ßΓá¡Γá       ç¡áτÑ¡¿Ñ
  649.    ───────────────────────────────
  650.      LeftText          0
  651.      CenterText        1
  652.      RightText         2
  653.  
  654.      BottomText        0
  655.      CenterText        1 (πªÑ «»αÑñѽѡá óδΦÑ)
  656.      TopText           2
  657.    ───────────────────────────────
  658.  
  659.  
  660.                        è«¡ßΓá¡Γδ «ΓßÑτÑ¡¿∩.
  661.  
  662.      êß»«½∞ºπ⌐ΓÑ φΓ¿  ¬«¡ßΓá¡Γδ  ß   SetViewPort   ñ½∩   π»αáó½Ñ¡¿∩
  663. «ΓßÑτÑ¡¿Ñ¼.  Åα¿  ClipOn  úαáΣ¿τÑ߬¿⌐  óδó«ñ  íπñÑΓ  «ΓßѬáΓ∞ß∩  »«
  664. úαá¡¿µÑ «¬¡á:
  665.  
  666.    ───────────────────────────────
  667.     è«¡ßΓá¡Γá       ç¡áτÑ¡¿Ñ
  668.    ───────────────────────────────
  669.      ClipOn          True
  670.      ClipOff         False
  671.    ───────────────────────────────
  672.  
  673.  
  674.                          è«¡ßΓá¡Γδ »«½«ßδ.
  675.  
  676.      ¥Γ¿ ¬«¡ßΓá¡Γδ ¿ß»«½∞ºπεΓß∩ ß Bar3D, τΓ«íδ π¬áºáΓ∞ íπñÑΓ ½¿ 3-σ
  677. ¼Ñα¡á∩ óÑαΦ¿¡á α¿ß«óáΓ∞ß∩ ¡á óÑασπ »«½«ßδ:
  678.  
  679.    ───────────────────────────────
  680.     è«¡ßΓá¡Γá       ç¡áτÑ¡¿Ñ
  681.    ───────────────────────────────
  682.      TopOn           True
  683.      TopOff          False
  684.    ───────────────────────────────
  685.  
  686.  
  687.                    è«¡ßΓá¡Γδ Φáí½«¡á ºá»«½¡Ñ¡¿∩.
  688.  
  689.      ¥Γ¿ Φáí½«¡δ    ºá»«½¡Ñ¡¿∩   ¿ß»«½∞ºπεΓß∩   GetFillSettings   ¿
  690. SetFillStyle. êß»«½∞ºπ⌐ΓÑ  SetFillPattern  ñ½∩  «»αÑñѽѡ¿∩  éáΦÑú«
  691. ß«íßΓóÑ¡¡«ú« ßΓ¿½∩         ºá»«½¡Ñ¡¿∩,        ºáΓѼ        ó맮ó¿ΓÑ
  692. SetFillStyle(UserFill,  SomeColor) ¿ ßñѽá⌐ΓÑ ßó«⌐ Φáí½«¡ á¬Γ¿ó¡δ¼:
  693.  
  694. ──────────────────────────────────────────────────────────────
  695.     è«¡ßΓá¡Γá       ç¡áτÑ¡¿Ñ
  696. ──────────────────────────────────────────────────────────────
  697.     EmptyFill          0  ºá»«½¡∩ÑΓ µóÑΓ«¼ Σ«¡á
  698.     SolidFill          1  ºá»«½¡∩ÑΓ «ß¡«ó¡δ¼ µóÑΓ«¼
  699.     LineFill           2  --- ºá»«½¡Ñ¡¿Ñ
  700.     LtSlashFill        3  /// ºá»«½¡Ñ¡¿Ñ
  701.     SlashFill          4  /// ºá»«½¡Ñ¡¿Ñ Γ«½ßΓ묨 ½¿¡¿∩¼¿
  702.     BkSlashFill        5  \\\ ºá»«½¡Ñ¡¿Ñ Γ«½ßΓ묨 ½¿¡¿∩¼¿
  703.     LtBkSlashFill      6  \\\ ºá»«½¡Ñ¡¿Ñ
  704.     HatchFill          7  αÑñ¬á∩ ΦΓα¿σ«ó¬á
  705.     XHatchFill         8  »½«Γ¡á∩ ΦΓα¿σ«ó¬á
  706.     InterleaveFill     9  »ÑαÑßѬáεΘ¿Ñß∩ ½¿¡¿¿
  707.     WideDotFill       10  αÑñ¬¿Ñ Γ«τ¬¿
  708.     CloseDotFill      11  »½«Γ¡δÑ Γ«τ¬¿
  709.     UserFill          12  «»αÑñѽѡ¡δ⌐ »«½∞º«óáΓѽѼ ßΓ¿½∞
  710. ──────────────────────────────────────────────────────────────
  711.  
  712.  
  713.                         ü¿Γ«óδÑ «»ÑαáΓ«αδ.
  714.  
  715.      êß»«½∞ºπ⌐ΓÑ φΓ¿ í¿Γ«óδÑ «»ÑαáΓ«αδ ß PutImage ¿ SetWriteMode:
  716.  
  717.    ──────────────────────────────────────
  718.        è«¡ßΓá¡Γá          ç¡áτÑ¡¿Ñ
  719.    ──────────────────────────────────────
  720.        CopyPut            0    { MOV }
  721.        XORPut             1    { XOR }
  722.  
  723.    êß»«½∞ºπ⌐ΓÑ φΓ¿ «»Ñαᵿ¿ Γ«½∞¬« ß PutImage:
  724.  
  725.        OrPut              2    { OR  }
  726.        AndPut             3    { AND }
  727.        NotPut             4    { NOT }
  728.    ──────────────────────────────────────
  729.  
  730.  
  731.                         è«¡ßΓá¡Γᠻ὿Γαδ.
  732.  
  733.      ¥Γá ¬«¡ßΓá¡Γá     ¿ß»«½∞ºπÑΓß∩     GetPalette,     GetDefault,
  734. SetAllPalette ¿ «»αÑñѽ∩ÑΓ ºá»¿ß∞ PaletteType:
  735.  
  736.    ───────────────────────────────
  737.     è«¡ßΓá¡Γá       ç¡áτÑ¡¿Ñ
  738.    ───────────────────────────────
  739.     MaxColors         15
  740.    ───────────────────────────────
  741.  
  742.  
  743.                                Æ¿»δ
  744.  
  745.      ¥Γᠺỿß∞  ¿ß»«½∞ºπÑΓß∩  ß  GetPalette,  GetDefaultPalette  ¿
  746. SetAllPalette:
  747.  
  748.   type
  749.     PaletteType = record
  750.         Size   : Byte;
  751.         Colors : array (0.. MaxColors) of Shortint;
  752.   end;
  753.  
  754.      ¥Γᠺỿß∞ ¿ß»«½∞ºπÑΓß∩ ß GetLineSettings:
  755.  
  756.      type
  757.        LineSettingsType = record
  758.            LineStyle : Word;
  759.            Pattern   : Word;
  760.            Thickness : Word;
  761.      end;
  762.  
  763.      ¥Γᠺỿß∞ ¿ß»«½∞ºπÑΓß∩ ß GetTextSettings:
  764.  
  765.      type
  766.        TextSettingsType = record
  767.            Font      : Word;
  768.            Direction : Word;
  769.            CharSize  : Word;
  770.            Horiz     : Word;
  771.            Vert      : Word;
  772.      end;
  773.  
  774.      ¥Γᠺỿß∞ ¿ß»«½∞ºπÑΓß∩ ß GetFillSettings:
  775.  
  776.      type
  777.        FillSettingsType = record
  778.            Pattern : Word;
  779.            Color   : Word;
  780.      end;
  781.  
  782.      ¥Γᠺỿß∞ ¿ß»«½∞ºπÑΓß∩ ß GetFillPattern ¿ SetFillPattern:
  783.  
  784.      type
  785.        FillPatternType = array [1..8] of Byte; { «»αÑñѽ∩Ѽδ⌐
  786.                         »«½∞º«óáΓѽѼ ßΓ¿½∞ }
  787.  
  788.      ¥Γ«Γ Γ¿» «»αÑñѽѡ ñ½∩ éáΦÑú« πñ«íßΓóá.  çá¼ÑΓ¿¼, τΓ« «íá »«½∩
  789. Γ¿»á Integer:
  790.  
  791.      type
  792.        PointType = record
  793.           X,Y: Integer;
  794.      end;
  795.  
  796.      ¥Γᠺỿß∞ ¿ß»«½∞ºπÑΓß∩ ß GetViewSettings ñ½∩ »«½πτÑ¡¿∩ ñá¡¡δσ
  797. « ΓѬπΘѼ «¬¡Ñ:
  798.  
  799.    type
  800.      ViemPortType = integer;
  801.        X1, Y1, X2, Y2: Integer;
  802.        Clip          : Boolean;
  803.    end;
  804.  
  805.      ¥Γᠺỿß∞   ¿ß»«½∞ºπÑΓß∩   ß   GetArcCoords   ¿   ¼«ªÑΓ  íδΓ∞
  806. ¿ß»«½∞º«óá¡á ñ½∩ »«½πτÑ¡¿∩ ¿¡Σ«α¼áµ¿¿ « »«ß½Ññ¡Ñ¼  ó맮óÑ  Arc  ¿½¿
  807. Ellipse:
  808.  
  809.    type
  810.      ArcCoordsType = record
  811.         X, Y          : Integer;
  812.         Xstart, Ystart: Integer;
  813.         Xend, Yend    : Integer;
  814.    end;
  815.  
  816.  
  817.                             ÅÑαѼѡ¡δÑ.
  818.  
  819.      ¥Γ¿ »ÑαѼѡ¡δÑ  π¬áºδóáεΓ ¡á »α«úαá¼¼δ π»αáó½Ñ¡¿∩ ¬πτÑ⌐ ¼«ñπ½∩
  820. Graph.  àß½¿  éáΦá  »α«úαἼᠠ¿ß»«½∞ºπÑΓ   ß«íßΓóÑ¡¡δÑ   »α«úαá¼¼δ
  821. π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε, »α¿ßó«⌐ΓÑ áñαÑßá éáΦ¿σ »α«úαá¼¼ αáß»αÑñѽѡ¿∩ ¿
  822. «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿ »ÑαѼѡ¡δ¼ GraphGetMemPrt ¿ GraphFreeMemPrt:
  823.  
  824. ──────────────────────────────────────────────────────────────
  825.  ÅÑαѼѡ¡á∩        ç¡áτÑ¡¿Ñ
  826. ──────────────────────────────────────────────────────────────
  827. GraphGetMemPrt      Pointer  (αáß»αÑñѽѡ¿Ñ ¬πτ¿)
  828. GraphFreeMemPrt     Pointer  («ßó«í«ªñÑ¡¿Ñ ¬πτ¿)
  829. ──────────────────────────────────────────────────────────────
  830.  
  831.                             Åα«µÑñπαδ.
  832.  
  833.                Æáí½¿µá 12.3. Åα«µÑñπαδ ¼«ñπ½∩ Graph.
  834.  
  835. ───────────────────────────────────────────────────────────────────
  836.    Arc               É¿ßπÑΓ ñπúπ «Γ ¡áτá½∞¡«ú« πú½á ¬ ¬«¡Ñτ¡«¼π,
  837.                      ¿ß»«½∞ºπ∩ (X,Y) ¬á¬ µÑ¡Γα
  838.  
  839.    Bar               É¿ßπÑΓ »«½«ßπ, ¿ß»«½∞ºπ∩ ΓѬπΘ¿⌐ ßΓ¿½∞ ¿ µóÑΓ.
  840.  
  841.    Bar3D             É¿ßπÑΓ 3-σ ¼Ñα¡πε »«½«ßπ, ¿ß»«½∞ºπ∩ ΓѬπΘ¿⌐
  842.                      ßΓ¿½∞ ¿ µóÑΓ.
  843.  
  844.    Circle            É¿ßπÑΓ «¬απª¡«ßΓ∞, ¿ß»«½∞ºπ∩ (X,Y) ¬á¬ µÑ¡Γα.
  845.  
  846.    ClearDevice       Äτ¿ΘáÑΓ φ¬αá¡ ¿ πßΓá¡áó½¿óáÑΓ ΓѬπΘ¿⌐ π¬áºáΓѽ∞
  847.                      (CP) ó ¡áτὫ.
  848.  
  849.    ClearViewPort     Äτ¿ΘáÑΓ «¬¡«.
  850.  
  851.    CloseGraph        çá¬αδóáÑΓ úαáΣ¿τÑ߬πε ß¿ßΓѼπ.
  852.  
  853.    DetectGraph       Åα«óÑα∩ÑΓ á»»áαáΓπαπ ¿ «»αÑñѽ∩ÑΓ ¬á¬«⌐
  854.                      úαáΣ¿τÑ߬¿⌐ ñαá⌐óÑα ¿ ó ¬á¬«¼ αѪ¿¼Ñ
  855.                      ¿ß»«½∞ºπÑΓß∩.
  856.  
  857.    DrawPoly          É¿ßπÑΓ ¼¡«ú«πú«½∞¡¿¬ ΓѬπΘ¿¼ µóÑΓ«¼ ¿ Γ¿»«¼
  858.                      ½¿¡¿¿.
  859.  
  860.    Ellipse           É¿ßπÑΓ φ½½¿»Γ¿τÑ߬πε ñπúπ «Γ ¡áτá½∞¡«ú« πú½á
  861.                      ¬ ¬«¡Ñτ¡«¼π, ¿ß»«½∞ºπ∩ (X,Y) ¬á¬ µÑ¡Γα.
  862.  
  863.    FillEllipse       É¿ßπÑΓ ºá»«½¡Ñ¡¡δ⌐ φ½½¿»ß, ¿ß»«½∞ºπ∩ (X,Y) ¬á¬
  864.                      µÑ¡Γα ¿ XRadius ¿ YRadius ¬á¬ ú«α¿º«¡Γá½∞¡δÑ
  865.                      ¿ óÑαΓ¿¬á½∞¡δÑ «ß¿.
  866.  
  867.    FillPoly          çừ½¡∩ÑΓ ¼¡«ú«πú«½∞¡¿¬, ¿ß»«½∞ºπ∩
  868.                      ß¬á¡¿α«óá¡¿Ñ.
  869.  
  870.    FloodFill         çừ½¡∩ÑΓ «úαá¡¿τÑ¡¡πε «í½áßΓ∞, ¿ß»«½∞ºπ∩
  871.                      ΓѬπΘ¿⌐ Φáí½«¡ ¿ µóÑΓ ºá»«½¡Ñ¡¿∩.
  872.  
  873.    GetArcCoords      Å«ºó«½∩ÑΓ ºá»α«ß¿Γ∞ ¬««αñ¿¡áΓδ ¬«¼á¡ñδ Arc.
  874.  
  875.    GetAspectRatio    é«ºóαáΘáÑΓ αáºαÑΦÑ¡¿Ñ φ¬αá¡á ¿º ¬«Γ«α«ú« ¼«ªÑΓ
  876.                      íδΓ∞ óδτ¿ß½Ñ¡ «Γ¡«ß¿Γѽ∞¡δ⌐ á߻ѬΓ
  877.                      (Xasp/Yasp).
  878.  
  879.    GetFillPattern    é«ºóαáΘáÑΓ Φáí½«¡  ºá»«½¡Ñ¡¿∩, πßΓá¡«ó½Ñ¡¡δ⌐
  880.                      »«ß½Ññ¡¿¼ óδº«ó«¼ SetFillPattern.
  881.  
  882.    GetFillSettings   Å«ºó«½∩ÑΓ ºá»α«ß¿Γ∞ ΓѬπΘ¿⌐ Φáí½«¡ ¿ µóÑΓ,
  883.                      πßΓá¡«ó½Ñ¡¡δÑ SetFillStyle ¿½¿ SetFillPattern.
  884.  
  885.    GetImage          æ«σαá¡∩ÑΓ í¿Γ«óδ⌐ «íαẠπ¬áºá¡¡«⌐ τáßΓ¿ φ¬αá¡á
  886.                      ó íπΣÑαÑ.
  887.  
  888.    GetLineSettings   é«ºóαáΘáÑΓ ΓѬπΘ¿Ñ ßΓ¿½∞, Φáí½«¡ ¿ Γ«½Θ¿¡π
  889.                      ½¿¡¿¿, πßΓá¡«ó½Ñ¡¡δÑ SetLineStyle.
  890.  
  891.    GetModeRange      é«ºóαáΘáÑΓ ¼¿¡¿¼á½∞¡δ⌐ ¿ ¼á¬ß¿¼á½∞¡δ⌐
  892.                      úαáΣ¿τÑ߬¿Ñ αѪ¿¼δ ñ½∩ ñá¡¡«ú« ñαá⌐óÑαá.
  893.  
  894.    GetPalette        é«ºóαáΘáÑΓ ΓѬπΘπε »á½¿Γαπ ¿ ÑÑ αẼÑα.
  895.  
  896.    GetTextSettings   é«ºóαáΘáÑΓ ΓѬπΘ¿⌐ Φα¿ΣΓ, ¡á»αáó½Ñ¡¿Ñ, αẼÑα
  897.                      ¿ óδαáó¡¿óá¡¿Ñ ΓѬßΓá, πßΓá¡«ó½Ñ¡¡δÑ
  898.                      SetTextStyle ¿ SetTextJustify.
  899.  
  900.    GetViewSettings   Å«ºó«½∩ÑΓ ºá»α«ß¿Γ∞ ΓѬπΘ¿Ñ »áαá¼ÑΓαδ «¬¡á ¿
  901.                      «ΓßÑτÑ¡¿∩.
  902.  
  903.    GraphDefaults     ôßΓá¡áó½¿óáÑΓ ΓѬπΘ¿⌐ π¬áºáΓѽ∞ (CP) ó ¡áτὫ
  904.                      ¿ »ÑαÑπßΓá¡áó½¿óáÑΓ úαáΣ¿τÑ߬πε ß¿ßΓѼπ.
  905.  
  906.    InitGraph         ê¡¿µ¿á½¿º¿απÑΓ úαáΣ¿τÑ߬πε ß¿ßΓѼπ ¿
  907.                      πßΓá¡áó½¿óáÑΓ πßΓα«⌐ßΓó« ó úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  908.  
  909.    Line              É¿ßπÑΓ ½¿¡¿ε «Γ (X1,Y1) ¬ (X2,Y2).
  910.  
  911.    LineRel           É¿ßπÑΓ ½¿¡¿ε «Γ ΓѬπΘÑú« π¬áºáΓѽ∩ (CP) ¬
  912.                      Γ«τ¬Ñ, ½ÑªáΘÑ⌐ ¡á ºáñá¡¡«¼ αáßΓ«∩¡¿¿.
  913.  
  914.    LineTo            É¿ßπÑΓ ½¿¡¿ε «Γ ΓѬπΘÑú« π¬áºáΓѽ∩ ¬ (X,Y).
  915.  
  916.    MoveRel           ÅÑαÑñó¿úáÑΓ ΓѬπΘ¿⌐ π¬áºáΓѽ∞ (CP) ¡á ºáñá¡¡«Ñ
  917.                      αáßßΓ«∩¡¿Ñ «Γ Ñú« ΓѬπΘÑ⌐ »«º¿µ¿¿.
  918.  
  919.    MoveTo            ÅÑαÑñó¿úáÑΓ ΓѬπΘ¿⌐ π¬áºáΓѽ∞ (CP) ó (X,Y).
  920.  
  921.    OutText           éδó«ñ¿Γ ΓѬßΓ ¡á φ¬αá¡ «Γ ΓѬπΘÑú« π¬áºáΓѽ∩.
  922.  
  923.    OutTextXY         éδó«ñ¿Γ ΓѬßΓ ¡á φ¬αá¡.
  924.  
  925.    PieSlice          É¿ßπÑΓ ¿ ºá»«½¡∩ÑΓ ßÑ¬Γ«α, ¿ß»«½∞ºπ∩ (X,Y) ¬á¬
  926.                      µÑ¡Γα ¿ α¿ßπ∩ «Γ ¡áτá½∞¡«ú« πú½á ¬ ¬«¡Ñτ¡«¼π.
  927.  
  928.    PutImage          éδó«ñ¿Γ í¿Γ«óδ⌐ «íαẠ¡á φ¬αá¡.
  929.  
  930.    PutPixel          É¿ßπÑΓ Γ«τ¬π (»¿¬ßѽ) ó (X,Y).
  931.  
  932.    Rectangle         É¿ßπÑΓ »α∩¼«πú«½∞¡¿¬, ¿ß»«½∞ºπ∩ ΓѬπΘ¿⌐ µóÑΓ ¿
  933.                      Γ¿» ½¿¡¿¿.
  934.  
  935.    RestoreCRTMode    é«ßßΓá¡áó½¿óáÑΓ ó¿ñÑ«αѪ¿¼, ¬«Γ«αδ⌐ íδ½ ñ«
  936.                      ¿¡¿µ¿á½¿ºáµ¿¿ úαáΣ¿¬¿.
  937.  
  938.    Sector            É¿ßπÑΓ ¿ ºá»«½¡∩ÑΓ ßÑ¬Γ«α φ½½¿»ßá.
  939.  
  940.    SetActivePage     ôßΓá¡áó½¿óáÑΓ  á¬Γ¿ó¡πε  ßΓαá¡¿µπ ñ½∩
  941.                      úαáΣ¿τÑ߬«ú« óδó«ñá.
  942.  
  943.    SetAllPalette     êº¼Ñ¡∩ÑΓ µóÑΓ »á½¿Γαδ.
  944.  
  945.    SetAspectRatio    êº¼Ñ¡∩ÑΓ º¡áτÑ¡¿Ñ «Γ¡«ß¿Γѽ∞¡«ú« á߻ѬΓá.
  946.  
  947.    SetBkColor        ôßΓá¡áó½¿óáÑΓ µóÑΓ Σ«¡á.
  948.  
  949.    SetColor          ôßΓá¡áó½¿óáÑΓ «ß¡«ó¡«⌐ µóÑΓ, ¬«Γ«αδ¼  íπñÑΓ
  950.                      «ßπΘÑßΓó½∩Γ∞ß∩ α¿ß«óá¡¿Ñ.
  951.  
  952.    SetFillPattern    éδí¿αáÑΓ Φáí½«¡ ºá»«½¡Ñ¡¿∩, «»αÑñѽѡ¡δ⌐
  953.                      »«½∞º«óáΓѽѼ.
  954.  
  955.    SetFillStyle      ôßΓá¡áó½¿óáÑΓ Φáí½«¡ ºá»«½¡Ñ¡¿∩ ¿ µóÑΓ.
  956.  
  957.    SetGraphBufSize   Å«ºó«½∩ÑΓ ¿º¼Ñ¡¿Γ∞ αẼÑα íπΣÑαá ñ½∩ Σπ¡¬µ¿⌐
  958.                      ºá»«½¡Ñ¡¿∩.
  959.  
  960.    SetGraphMode      ÅÑαÑó«ñ¿Γ ß¿ßΓѼπ ó úαáΣ¿τÑ߬¿⌐ αѪ¿¼ ¿
  961.                      «τ¿ΘáÑΓ φ¬αá¡.
  962.  
  963.    SetLineStyle      ôßΓá¡áó½¿óáÑΓ ΓѬπΘ¿Ñ Γ«½Θ¿¡π ¿ ßΓ¿½∞ ½¿¡¿¿.
  964.  
  965.    SetPalette        êº¼Ñ¡∩ÑΓ «ñ¿¡ µóÑΓ »á½¿Γαδ, π¬áºá¡¡δ⌐ τÑαѺ
  966.                      ColorNum ¿ Color.
  967.  
  968.    SetRGBPallete     Å«ºó«½∩ÑΓ ¼«ñ¿Σ¿µ¿º«óáΓ∞ »á½¿Γαπ ñ½∩ IBM 8514
  969.                      ¿ VGA.
  970.  
  971.    SetTextJustify    ôßΓá¡áó½¿óáÑΓ óδαáó¡¿óá¡¿Ñ ΓѬßΓá,
  972.                      ¿ß»«½∞ºπѼ«Ñ OutText ¿ OutTextXY.
  973.  
  974.    SetTextStyle      ôßΓá¡áó½¿óáÑΓ ΓѬπΘ¿⌐ Φα¿ΣΓ, ßΓ¿½∞ ¿ αẼÑα
  975.                      ΓѬßΓá.
  976.  
  977.    SetUserCharSize   Å«ºó«½∩ÑΓ ¿º¼Ñ¡¿Γ∞ Φ¿α¿¡π ¿ óδß«Γπ  ß¿¼ó«½á
  978.                      ñ½∩ ΦΓα¿σ«ó«ú« Φα¿ΣΓá.
  979.  
  980.    SetViewPort       ôßΓá¡áó½¿óáÑΓ ΓѬπΘÑÑ «¬¡« ñ½∩ úαáΣ¿τÑ߬«ú«
  981.                      óδó«ñá.
  982.  
  983.    SetVisualPage     ôßΓá¡áó½¿óáÑΓ ¡«¼Ñα ó¿ñ¿¼«⌐ úαáΣ¿τÑ߬«⌐
  984.                      ßΓαá¡¿µδ.
  985.  
  986.    SetWriteMode      ôßΓá¡áó½¿óáÑΓ αѪ¿¼ óδó«ñá (¬«»¿α«óá¡¿Ñ ¿½¿
  987.                      XOR) ñ½∩ ½¿¡¿⌐, α¿ßπѼδσ ß DrawPoly, Line,
  988.                      LineRel, LineTo, Rectangle.
  989. ───────────────────────────────────────────────────────────────────
  990.  
  991.                                öπ¡¬µ¿¿
  992.  
  993.                 Æáí½¿µá 12.4. öπ¡¬µ¿¿ ¼«ñπ½∩ Graph.
  994.  
  995. ───────────────────────────────────────────────────────────────────
  996.    GetBkColor        é«ºóαáΘáÑΓ ΓѬπΘ¿⌐ Σ«¡«óδ⌐ µóÑΓ.
  997.  
  998.    GetColor          é«ºóαáΘáÑΓ ΓѬπΘ¿⌐ µóÑΓ.
  999.  
  1000.    GetDefaultPalette é«ºóαáΘáÑΓ   á»»áαáΓ¡πε   »á½¿Γαπ   ó   ºá»¿ß¿
  1001.                      PaletteType.
  1002.  
  1003.    GetDriverName     éoºóαáΘáÑΓ ßΓ᫬π ß ¿¼Ñ¡Ñ¼ ΓѬπΘÑú« ñαá⌐óÑαá.
  1004.  
  1005.    GetGraphMode      é«ºóαáΘáÑΓ ΓѬπΘ¿⌐ úαáΣ¿τÑ߬¿⌐ αѪ¿¼.
  1006.  
  1007.    SetMaxColor       é«ºóαáΘáÑΓ ¼á¬ß¿¼á½∞¡δ⌐ µóÑΓ, ¬«Γ«αδ⌐ ¼«ª¡«
  1008.                      ºáñáΓ∞ ó SetColor.
  1009.  
  1010.    GetMaxMode        é«ºóαáΘáÑΓ ¡«¼Ñα ¼á¬ß¿¼á½∞¡«ú« αѪ¿¼á ΓѬπΘÑú«
  1011.                      ºáúαπªÑ¡¡«ú« ñαá⌐óÑαá.
  1012.  
  1013.    GetMaxX           é«ºóαáΦáÑΓ ¼á¬ß¿¼á½∞¡δ⌐ ò (αáºαÑΦÑ¡¿Ñ »«
  1014.                      ú«α¿º«¡Γ὿) ñ½∩ ΓѬπΘÑú« úαáΣ¿τÑ߬«ú«
  1015.                      ñαá⌐óÑαá ¿ αѪ¿¼á.
  1016.  
  1017.    GetMaxY           é«ºóαáΘáÑΓ ¼á¬ß¿¼á½∞¡δ⌐ Y (αáºαÑΦÑ¡¿Ñ »«
  1018.                      óÑαΓ¿¬á½¿) ñ½∩ ΓѬπΘÑú« úαáΣ¿τÑ߬«ú«
  1019.                      ñαá⌐óÑαá ¿ αѪ¿¼á.
  1020.  
  1021.    GetModeName       é«ºóαáΘáÑΓ ßΓ᫬π ß ¿¼Ñ¡Ñ¼ π¬áºá¡¡«ú«
  1022.                      úαáΣ¿τÑ߬«ú« αѪ¿¼áε.
  1023.  
  1024.    GetPaletteSize    é«ºóαáΘáÑΓ αẼÑα Γáí½¿µδ  »á½¿Γαδ.
  1025.  
  1026.    GetPixel          é«ºóαáΘáÑΓ µóÑΓ Γ«τ¬¿ ó (X,Y).
  1027.  
  1028.    GetX              é«ºóαáΘáÑΓ ¬««αñ¿¡áΓπ X ΓѬπΘÑ⌐ »«º¿µ¿¿ (CP).
  1029.  
  1030.    GetY              é«ºóαáΘáÑΓ ¬««αñ¿¡áΓπ Y ΓѬπΘÑ⌐ »«º¿µ¿¿ (æÉ).
  1031.  
  1032.    GraphErrorMsg     é«ºóαáΘáÑΓ ßΓ᫬π ß««íΘÑ¡¿∩ «í «Φ¿í¬Ñ ñ½∩
  1033.                      ºáñá¡¡«ú« ¬«ñá ErrorCode.
  1034.  
  1035.    GraphResult       é«ºóαáΘáÑΓ ¬«ñ «Φ¿í¬¿ ñ½∩ »«ß½Ññ¡Ñ⌐
  1036.                      úαáΣ¿τÑ߬«⌐ «»Ñαᵿ¿.
  1037.  
  1038.    ImageSize         é«ºóαáΘáÑΓ τ¿ß½« íá⌐Γ, ΓαÑíπѼ«Ñ ñ½∩
  1039.                      ºá»«½¡Ñ¡¿∩ »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿ φ¬αá¡á.
  1040.  
  1041.    InstallUserDriver ôßΓá¡áó½¿óáÑΓ  »«½∞º«óáΓѽ∞߬¿⌐  ñαá⌐óÑα
  1042.                      πßΓα«⌐ßΓóá ó BGI Γáí½¿µπ ñαá⌐óÑα«ó πßΓα«⌐ßΓó.
  1043.  
  1044.    InstallUserFont   ôßΓá¡áó½¿óáÑΓ ¡«óδ⌐ Φα¿ΣΓ, ¬«Γ«αδ⌐ ¡Ñ óßΓα«Ñ¡
  1045.                      ó BGI ß¿ßΓѼπ.
  1046.  
  1047.    RegisterBGIdriver ÉÑú¿ßΓα¿απÑΓ  ñαá⌐óÑα BGI ñ½∩ úαáΣ¿τÑ߬«⌐
  1048.                      ß¿ßΓѼδ.
  1049.  
  1050.    RegisterBGIfont   ÉÑú¿ßΓα¿απÑΓ Φα¿ΣΓ BGI ñ½∩ úαáΣ¿τÑ߬«⌐
  1051.                      ß¿ßΓѼδ.
  1052.  
  1053.    TextHeight        é«ºóαáΘáÑΓ óδß«Γπ ßΓ᫬¿ ó »¿¬ßѽáσ.
  1054.  
  1055.    TextWidth         é«ºóαáΘáÑΓ Φ¿α¿¡π ßΓ᫬¿ ó »¿¬ßѽáσ.
  1056. ───────────────────────────────────────────────────────────────────
  1057.  
  1058.    ä½∩ ñÑΓá½∞¡«ú« «»¿ßá¡¿∩ φΓ¿σ »α«µÑñπα ¿ Σπ¡¬µ¿⌐  ß¼.  æ»αáó«τ¡«Ñ
  1059. απ¬«ó«ñßΓó« »« í¿í½¿«ΓѬÑ.
  1060.