home *** CD-ROM | disk | FTP | other *** search
Text File | 1979-12-31 | 56.7 KB | 1,479 lines |
-
-
- âïÇéÇ 4.
-
-
- çá»π߬ úαáΣ¿¬¿ »á¬ÑΓá Quick-C.
-
-
- 4.1 æΓαπ¬Γπαá úαáΣ¿τÑ߬«⌐ »α«úαá¼¼δ.
- 4.2 ôßΓá¡«ó¬á ó¿ñÑ«-αѪ¿¼á.
- 4.3 Ä»αÑñѽѡ¿Ñ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿.
- 4.4 êß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ ΓѬßΓ«óδσ αѪ¿¼«ó.
- 4.5 êß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ úαáΣ¿τÑ߬¿σ αѪ¿¼«ó CGA.
- 4.6 êß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ úαáΣ¿τÑ߬¿σ αѪ¿¼«ó EGA.
- 4.7 êß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ úαáΣ¿τÑ߬¿σ αѪ¿¼«ó VGA.
- 4.8 Å«¡∩Γ¿Ñ « ¬««αñ¿¡áΓ¡δσ ß¿ßΓѼáσ.
- 4.9 ÉáßßΓá¡«ó¬á Γ«τѬ.
- 4.10 éδτÑατ¿óá¡¿Ñ ½¿¡¿⌐.
- 4.11 Ä»¿ßá¡¿Ñ úαáΣ¿τÑ߬¿σ «íΩÑ¬Γ«ó.
- 4.12 꺫íαáªÑ¡¿Ñ úαáΣ¿τÑ߬¿σ «íΩÑ¬Γ«ó.
- 4.13 çừ½¡Ñ¡¿Ñ Σ¿úπα »« Φáí½«¡á¼.
- 4.14 éδτÑατ¿óá¡¿Ñ ¿ ºá»«¼¿¡á¡¿Ñ Σ¿úπα.
- 4.15 êß»«½∞º«óá¡¿Ñ ¼π½∞Γ¿»½¿¬áµ¿¿.
-
- äá¡¡á∩ â½áóá ¬αáΓ¬« «»¿ßδóáÑΓ «ß¡«óδ úαáΣ¿τÑ߬«ú« »α«úαá¼¼¿α«óá¡¿∩.
- Ä¡á αáºαáí«Γá¡á Γᬿ¼ «íαẫ¼, τΓ«íδ ¡á¿í«½ÑÑ íδßΓαδ¼ ß»«ß«í«¼ ¡áπτ¿Γ∞
- óáß αÑΦáΓ∞ ½εíδÑ úαáΣ¿τÑτ߬¿Ñ ºáñáτ¿.
-
- ùΓ«íδ π߬«α¿Γ∞ óáΦÑ «íπτÑ¡¿Ñ, ¬áªñá∩ ΓѼá αáß»«½áúáÑΓß∩ ¡á ñóπσ
- ßΓαá¡¿µáσ. ÆÑ¼δ »αÑñßΓáó½Ñ¡δ ó »«α∩ñ¬Ñ óδºαáßΓá¡¿∩ ß½«ª¡«ßΓ¿ ¿
- »α¿í½¿º¿Γѽ∞¡« «ΓóÑτá∩ τáßΓ«ΓÑ »«∩ó½Ñ¡¿∩ ó óáΦ¿σ »α«úαá¼¼áσ.
-
- èáªñδ⌐ αáºñѽ ß¡áτá½á «»αÑñѽ∩ÑΓ ¿ «»¿ßδóáÑΓ ΓѼπ (¬á¬, ¡»α¿¼Ñα,
- ó¿ñÑ«-αѪ¿¼), ºáΓѼ »ÑαÑσ«ñ¿Γ ¬ »«ñα«í¡«¼π αáßß¼«ΓαÑ¡¿ε ñá¡¡«⌐ «»Ñαᵿ¿.
- èáªñδ⌐ αáºñѽ, ¬α«¼Ñ Γ«ú«, ºá¬á¡τ¿óáÑΓß∩ úαáΣ¿τÑ߬«⌐ »α«úαá¼¼«⌐ ¿½¿
- ßÑú¼Ñ¡Γ«¼ »α«úαá¼¼δ, ¬«Γ«αá∩ »«∩ß¡∩ÑΓ ΓѼπ.
-
- ---------------------------------------------------------------------
-
- é᪡«Ñ ºá¼Ñτá¡¿Ñ:
-
- ùΓ«íδ óδ»«½¡¿Γ∞ úαáΣ¿τÑ߬¿Ñ »α¿¼Ñαδ, »α¿óÑñÑ¡¡δÑ ó ñá¡¡«⌐ â½áóÑ, óáΦ
- ¬«¼»∞εΓÑα ñ«½ªÑ¡ «í½áñáΓ∞ úαáΣ¿τÑ߬¿¼¿ ó«φ¼«ª¡«ßΓ∩¼¿. ¥Γ« ¼«ªÑΓ íδΓ∞,
- ¡á»α¿¼Ñα, óßΓα«Ñ¡¡«Ñ ßαÑñßΓó« ¿½¿ »½áΓá úαáΣ¿τÑ߬«ú« áñá»ΓÑαá, ¿
- ó¿ñÑ«-ñ¿ß»½Ñ⌐ (½¿í« ¼«¡«σα«¡¡δ⌐, ½¿í« µóÑΓ¡«⌐), ¬«Γ«αδ⌐ »«ññÑনóáÑΓ
- Γ«τÑτ¡πε úαáΣ¿¬π.
-
- èα«¼Ñ Γ«ú«, óá¼ ß½ÑñπÑΓ ó¬½ετ¿Γ∞ ó »α«úαá¼¼¡δ⌐ ß»¿ß«¬ óáΦÑ⌐
- óδ»«½¡∩Ѽ«⌐ æê-»α«úαá¼¼δ úαáΣ¿τÑ߬πε í¿í½¿«ΓѬπ. Å«ñα«í¡« φëà »α«µÑßß
- «»¿ßá¡ ó ÉáºñÑ½Ñ 6.1.
-
- ---------------------------------------------------------------------
-
- -ä«»«½¡¿Γѽ∞¡δÑ ¿ßΓ«τ¡¿¬¿ »« ¿ºπτÑ¡¿ε úαáΣ¿¬¿.
-
- ä½∩ ñá½∞¡Ñ⌐ΦÑú« »«úαπªÑ¡¿∩ ó ¼¿¬α«¬«¼»∞εΓÑα¡πε úαáΣ¿¬π óδ ¼«ªÑΓÑ
- ó«ß»«½∞º«óáΓ∞ß∩ ¡Ñ¬«Γ«α묨 ¿º »α¿óÑñÑ¡¡δσ ¡¿ªÑ »«ß«í¿⌐:
-
- -Artwick, Bruce. "Microcomputer Displays, Graphics and Animaition".
- Englewood Cliffs. NJ:Prentice-Hall, Inc., 1985 (Äíº«α ¼¿¬α«¬«¼»εΓÑα¡«⌐
- úαáΣ¿¬¿ ¿ ¼π½∞Γ¿»½¿¬áµ¿¿ ß«ºñáΓѽѼ "flight Simulator").
-
- -Cockerham, John T. "Tne EGA Standart" PC Teeh Journal 4:10 (October
- 1986): 48-79 (Äíº«α ßΓá¡ñáαΓá EGA).
-
- Hummel,Robert L. "Get the Full EGA Color Spectrum". PC Magazine
- (June 23,1987):311-328. (Äíº«α µóÑΓ¡δσ »á½¿Γα EGA).
-
- -International Business Mashines. "Enhanced Graphics Adapter"
- (manual part # 6280131). (ÄΣ¿µ¿á½∞¡«Ñ ΓÑσ¡¿τÑ߬«Ñ απ¬«ó«ñßΓó« áñá»ΓÑαá
- EGA, óδ»πΘÑ¡¡«Ñ Σ¿α¼«⌐ IBM, 1-800-426-7282).
-
- -Norton,Peter "The Peter Norton Programmer's Guide to the IBM PC".
- Redmond, WA:Microsoft press, 1985. (æΓá¡ñáαΓ¡«Ñ απ¬«ó«ñßΓó« "¿º¡πΓα¿"
- »« ßѼÑ⌐ßΓó𠬫¼»∞εΓÑα«ó IBM-PC. ìÑ߬«½∞¬« ú½áó »«ßó∩ΘÑ¡δ ó¿ñÑ«-αѪ¿¼á¼,
- ºá ¿ß¬½ετÑ¡¿Ñ¼ αѪ¿¼«ó EGA ¿ VGA).
-
-
- 4.1 æΓαπ¬Γπαá úαáΣ¿τÑ߬«⌐ »α«úαá¼¼δ.
-
- Éáºαáí«Γ¬á óßÑσ úαáΣ¿τÑ߬¿σ »α«úαá¼¼ ó¬½ετáÑΓ ß½ÑñπεΘ¿Ñ »∩Γ∞ Φáú«ó:
-
- 1.Å«ñ¬½ετÑ¡¿Ñ úαáΣ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿.
-
- 2.ôßΓá¡«ó¬á ó¿ñÑ«-αѪ¿¼á.
-
- 3.Ä»αÑñѽѡ¿Ñ »áαá¼ÑΓα«ó ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿.
-
- 4.櫺ñá¡¿Ñ ¿ ¼á¡¿»π½∩µ¿¿ úαáΣ¿τÑ߬¿¼¿ Σ¿úπαἿ.
-
- 5.é«ßßΓá¡«ó½Ñ¡¿Ñ »Ñαó«¡áτá½∞¡«⌐ ¬«¡Σ¿úπαᵿ¿ »ÑαÑñ óδσ«ñ«¼ ¿º
- »α«úαá¼¼δ.
-
-
-
- -Å«ñ¬½ετÑ¡¿Ñ úαáΣ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿.
-
- é䬽ετáѼδ⌐ ºáú«½«ó«τ¡δ⌐ Σá⌐½ graph.h «»αÑñѽ∩ÑΓ «ß¡«ó¡δÑ
- »ÑαѼѡ¡δÑ, »α«Γ«Γ¿»δ Σπ¡¬µ¿⌐ ¿ ¬«¡ßΓá¡Γδ, ¿ß»«½∞ºπѼδÑ ó úαáΣ¿τÑ߬«¼
- »α«úαá¼¼¿α«óá¡¿¿. Å«ñ¬½ετá⌐ΓÑ ñá¡¡δ⌐ Σá⌐½ ¬« óßѼ »α«úαá¼¼á¼,
- ¿ß»«½∞ºπεΘ¿¼ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿.
-
- -ôßΓá¡«ó¬á ó¿ñÑ«-αѪ¿¼á.
-
- ÅÑαóδ¼ Φáú«¼ ó úαáΣ¿τÑ߬¿σ »α«úαá¼¼áσ ∩ó½∩ÑΓß∩ πßΓá¡«ó¬á
- ó¿ñÑ«-αѪ¿¼á, ¬«Γ«αδ⌐ αáºαÑΦáÑΓ óδ»«½¡Ñ¡¿Ñ úαáΣ¿τÑ߬¿σ Σπ¡¬µ¿⌐. é
- úαáΣ¿τÑ߬«⌐ í¿í½¿«ΓÑ¬Ñ æê »«ññÑনóáÑΓß∩ 10 úαáΣ¿τÑ߬¿σ αѪ¿¼«ó. Ä¡¿
- »ÑαÑτ¿ß½Ñ¡δ ó ÉáºñÑ½Ñ 4.2.
-
- Åα«µÑßß πßΓá¡«ó¬¿ ó¿ñÑ«-αѪ¿¼á «»¿ßá¡ ¡¿ªÑ:
-
- 1. ôßΓá¡«ó¿ΓÑ ¡á¿óδßΦ¿⌐ πα«óÑ¡∞ ó¿ñÑ«-αѪ¿¼á, ΓαÑíπѼδ⌐ ñ½∩ óá-
- ΦÑ⌐ »α«úαá¼¼δ. Åα«óÑα∞ΓÑ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ ¡á ßí«⌐.
-
- 2. àß½¿ óδ ¡Ñ ¼«ªÑΓÑ πßΓá¡«ó¿Γ∞ »Ñαó«¡áτá½∞¡« ºáñá¡¡δ⌐ ó¿ñÑ«-
- -αѪ¿¼, »α«ñ«½ª¿ΓÑ »«»δΓ¬π ß í«½ÑÑ ß½áí묨 αѪ¿¼á¼¿ ñ«
- ΓÑσ »«α, »«¬á αѪ¿¼ ¡Ñ íπñÑΓ πßΓá¡«ó½Ñ¡, ¿½¿ ñ« ΓÑσ »«α,
- »«¬á ¡Ñ «ßΓá¡ÑΓß∩ ó¿ñÑ«-αѪ¿¼«ó, πñ«ó½ÑΓó«α∩εΘ¿σ óáΦÑ⌐ »α«ú-
- αá¼¼Ñ. àß½¿ ¡Ñ ¡á⌐ñÑ¡« ¬«ααÑ¬Γ¡«ú« ó¿ñÑ«-αѪ¿¼á, óδ⌐ñÑΓÑ ¿º
- Σπ¡¬µ¿¿ ¿ ¡á»ÑτáΓá⌐ΓÑ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.
-
- -Ä»αÑñѽѡ¿Ñ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿.
-
- ä½∩ «»αÑñѽѡ¿∩ σáαá¬ΓÑα¿ßΓ¿¬ ó¿ñÑ«-αѪ¿¼á ß½ÑñπÑΓ óδºóáΓ∞ Σπ¡¬µ¿ε
- getvideoconfig. Å«½πτÑ¡¡á∩ ¿¡Σ«α¼áµ¿∩ ó¬½ετáÑΓ Γá¬¿Ñ óÑΘ¿, ¬á¬
- ¬«½¿τÑßΓó« »¿¬ßѽ«ó x ¿ y ñ½∩ ¬áªñ«ú« αẼÑαá ¿ ¬«½¿τÑßΓó« 󫺼«ª¡δσ
- µóÑΓ«ó.
-
- -é«ßßΓá¡«ó½Ñ¡¿Ñ »Ñαó«¡áτá½∞¡«⌐ ¬«¡Σ¿úπαᵿ¿.
-
- é«ßßΓá¡«ó¿ΓÑ ß¿ßΓѼπ ó ÑÑ »Ñαó«¡áτá½∞¡δ⌐ ó¿ñÑ«-αѪ¿¼ »«ßαÑñßΓó«¼
- ó맮óá Σπ¡¬µ¿¿ setvideomode ß ¬«¡ßΓá¡Γ«⌐ DEFAULTMODE. ÄΓ¬áº ß¿ßΓѼδ
- óδ»«½¡¿Γ∞ ñá¡¡δÑ ñÑ⌐ßΓó¿∩ »α¿óÑñπΓ ¬ Γ«¼π, τΓ« »α¿ ºá»πß¬Ñ ß½ÑñπεΘÑ⌐
- »α«úαá¼¼δ ¼áΦ¿¡á íπñÑΓ "ºáí½«¬¿α«óá¡á".
-
- -Åα¿¼Ñα: æ¬Ñ½ÑΓ úαáΣ¿τÑ߬«⌐ »α«úαá¼¼δ.
- #include <stdio.h>
- #include <graph.h> /* »«ñ¬½ετáѼδ⌐ Σá⌐½ úαáΣ¿τÑ߬¿σ Σπ¡¬µ¿⌐ */
- int set mode (void); /* »α«Γ«Γ¿» */
- struct videoconfig vc; /* ñá¡¡δÑ ¬«¡Σ¿úπαᵿ¿ */
- char error message [] = "This video mode is not supported";
- main()
- {
- /* »α«úαá¼¼á ΓαÑíπÑΓ αáºαÑΦÑ¡¿∩ φ¬αá¡á 640x200 */
- if (!set mode()){ /* Ñß½¿ set mode ºáóÑαΦ¿½áß∞ ¡Ñπñáτ¡« */
- printf ("%s\n", error message); /* »ÑτáΓ∞ ß««íΘÑ¡¿∩ «í «Φ¿í¬Ñ */
- exit (0); /* ¿ óδσ«ñ */
- }
- _getvideoconfig (&vc); /* ñá¡¡δÑ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿ ó VC */
- /* ºñÑß∞ óδ»«½¡∩εΓß∩ úαáΣ¿τÑ߬¿Ñ «»Ñαᵿ¿ */
- /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ó¿ñÑ«-αѪ¿¼á */
- _setvideomode (_DEFAULTMODE);
- }
- /* Σπ¡¬µ¿∩ ñ½∩ πßΓá¡«ó¬¿ αѪ¿¼á; »αÑñ»«½áúáÑΓß∩, τΓ« »α«úαá¼¼á
- ΓαÑíπÑΓ αáºαÑΦÑ¡¿∩ 640x200 */
- int set_mode()
- {
- if (_setvideomode (_HRES16COLOR)) /* VGA ¿½¿ EGA */
- return (_HRES16COLOR);
-
-
-
- if (_setvideomode(_HRESBW)) /* VGA, EGA ¿½¿ CGA */
- return (_HRESBW);
- esle
- return (0);
- }
-
- Åα«úαá¼¼á,»α¿óÑñÑ¡¡á∩ óδΦÑ, ó «íΘ¿σ τÑαΓáσ «íα¿ß«óδóáÑΓ úαáΣ¿τÑ߬πε
- »α«úαá¼¼π.
-
-
- 4.2. ôßΓá¡«ó¬á ó¿ñÑ«-αѪ¿¼á.
-
- éßÑ úαáΣ¿τÑ߬¿Ñ »α«úαá¼¼δ αáí«ΓáεΓ ó «»αÑñѽѡ¡«¼ úαáΣ¿τÑ߬«¼
- αѪ¿¼Ñ, ¬«Γ«αδ⌐ «»αÑñѽ∩ÑΓ αẼÑα φ¬αá¡á (ó »¿¬ßѽáσ) ¿ ¬«½¿τÑßΓó«
- 󫺼«ª¡δσ µóÑΓ«ó. ÉѪ¿¼, πßΓá¡«ó½Ñ¡¡δ⌐ »α«úαá¼¼«⌐, ñ«½ªÑ¡ íδΓ∞ ß«ó¼ÑßΓ¿¼
- ß ¬«¡Σ¿úπαᵿÑ⌐ «í«απñ«óá¡¿∩.
-
- -髺¼«ª¡δÑ αѪ¿¼δ.
-
- ä½∩ πßΓá¡«ó¬¿ ó¿ñÑ«-αѪ¿¼«ó ¿ß»«½∞ºπεΓß∩ »α¿óÑñÑ¡¡δÑ ¡¿ªÑ ¬«¡ßΓá¡Γδ.
- ÉẼÑαδ ñáεΓß∩ ó »¿¬ßѽáσ ñ½∩ úαáΣ¿τÑ߬¿σ αѪ¿¼«ó, ¿ ó ßΓ᫬áσ ¿
- ¬«½«¡¬áσ ñ½∩ ΓѬßΓ«óδσ αѪ¿¼«ó.
-
- è«¡ßΓá¡Γá é¿ñÑ«-αѪ¿¼ ÆÑ¬ßΓ«óδ⌐ ¿½¿
- úαáΣ¿τÑ߬¿⌐
-
- _DEFAULTMODE é«ßßΓá¡áó½¿óáÑΓ φ¬αá¡ ó Äíá
- «α¿ú¿¡á½∞¡δ⌐ αѪ¿¼
- _TEXTBW40 40x25 ΓѬßΓ, 16 ßÑαδσ ΓѬßΓ«óδ⌐
- _TEXTTC40 40x25 ΓѬßΓ, 16/8 µóÑΓ¡δσ ΓѬßΓ«óδ⌐
- _TEXTBW80 80x25 ΓѬßΓ, 16 ßÑαδσ ΓѬßΓ«óδ⌐
- _TEXTC80 80x25 ΓѬßΓ, 16/8 µóÑΓ¡δσ ΓѬßΓ«óδ⌐
- _MRES4COLOR 320x200 ∩τÑѬ, 4 µóÑΓá úαáΣ¿τÑ߬¿⌐
- _MRESNOCOLOR 320x200 ∩τÑѬ, 4 ßÑαδσ úαáΣ¿τÑ߬¿⌐
- _HRESBW 640x200 ∩τÑѬ, BW úαáΣ¿τÑ߬¿⌐
- _TEXTMONO 80x25 ΓѬßΓ, BW ΓѬßΓ«óδ⌐
- _MRES16COLOR 320x200 ∩τÑѬ, 16 µóÑΓ«ó úαáΣ¿τÑ߬¿⌐
- _HRES16COLOR 640x200 ∩τÑѬ, 16 µóÑΓ«ó úαáΣ¿τÑ߬¿⌐
- _ERESNOCOLOR 640x350 ∩τÑѬ, BW úαáΣ¿τÑ߬¿⌐
- _ERESCOLOR 640x350 ∩τÑѬ,4/16 µóÑΓ«ó úαáΣ¿τÑ߬¿⌐
- _VRES2COLOR 640x480 ∩τÑѬ, 2 µóÑΓá úαáΣ¿τÑ߬¿⌐
- _VRES16COLOR 640x480 ∩τÑѬ, 16 µóÑΓ«ó úαáΣ¿τÑ߬¿⌐
- _MRES256COLOR 320x200 ∩τÑѬ, 256 µóÑΓ«ó úαáΣ¿τÑ߬¿⌐
-
-
-
- -éδí«α ó¿ñÑ«-αѪ¿¼á.
-
- éδíÑαÑΓÑ ó¿ñÑ«-αѪ¿¼ ß ΓαÑíπÑ¼δ¼ αáºαÑΦÑ¡¿Ñ¼ ñ½∩ óδ»«½¡Ñ¡¿∩ óáΦÑ⌐
- ºáñáτ¿. éá¼ ¡πª¡« ßñѽáΓ∞ óδí«α ¼Ñªñπ »«óδΦÑ¡¿Ñ¼Ñ¼ αáºαÑΦáεΘÑ⌐
- ß»«ß«í¡«ßΓ¿ φ¬αá¡á ¿ ¬«½¿τÑßΓó«¼ µóÑΓ«ó. ä½∩ πßΓá¡«ó¬¿ αѪ¿¼á ó맮ó¿ΓÑ
- Σπ¡¬µ¿ε _setvideomode ß «ñ¡«⌐ ¿º »ÑαÑτ¿ß½Ñ¡¡δσ óδΦÑ ¬«¡ßΓá¡Γ.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ 0 «í«º¡áτáÑΓ, τΓ« óáΦÑ «í«απñ«óá¡¿Ñ ¡Ñ
- »«ññÑαñ¿óáÑΓ óδíαá¡¡δ⌐ ó¿ñÑ«-αѪ¿¼. æñѽá⌐ΓÑ óδσ«ñ ¿º »α«úαá¼¼δ ß
- ß««íΘÑ¡¿Ñ¼ « Γ«¼, τΓ« óδíαá¡¡δ⌐ ó¿ñÑ«-αѪ¿¼ ¡Ñ »«ññÑনóáÑΓß∩
- ¬«¡Σ¿úπαᵿÑ⌐ óáΦÑú« «í«απñ«óá¡¿∩.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ ΓαÑíπѼ«⌐ ó¿ñÑ«-αѪ¿¼ πßΓá¡«ó½Ñ¡, ó맮ó¿ΓÑ Σπ¡¬µ¿ε
- _getvideoconfig ñ½∩ «»αÑñѽѡ¿∩ »áαá¼ÑΓα«ó óδíαá¡¡«ú« ó¿ñÑ«-αѪ¿¼á
- (ΓᬿÑ, ¬á¬ αẼÑαδ φ¬αá¡á). Å«¼ÑßΓ¿ΓÑ ¿¡Σ«α¼áµ¿ε ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿ ó
- ߻ѵ¿á½∞¡πε ßΓαπ¬Γπαπ, ¬«Γ«απε íπñπΓ ¿ß»«½∞º«óáΓ∞ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿.
- êß»«½∞ºπ⌐ΓÑ ßΓαπ¬Γπαπ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿, á ¡Ñ áíß«½εΓ¡δÑ τ¿ß½á,
- «»αÑñѽ∩εΘ¿Ñ σáαá¬ΓÑα¿ßΓ¿¬¿ φ¬αá¡á. ¥Γ« «íÑß»Ñτ¿Γ »ÑαÑ¡«ß¿¼«ßΓ∞ ¡á
- ñαπú¿Ñ φ¬αá¡¡δÑ ¬«¡Σ¿úπαᵿ¿ (CGA, EGA ¿½¿ VGA).
-
- -é«ßßΓá¡«ó½Ñ¡¿Ñ ó¿ñÑ«-αѪ¿¼á.
-
- Å« «¬«¡τá¡¿ε »α«úαá¼¼δ óßÑúñá ß½ÑñπÑΓ ó«ßßΓá¡áó½¿óáΓ∞ «α¿ú¿¡á½∞¡δ⌐
- ó¿ñÑ«-αѪ¿¼ ß »«¼«Θ∞ε ó맮óá Σπ¡¬µ¿¿ _setvideomode ß »áαá¼ÑΓα«¼
- _DEFAULTMODE. ÄΓ¬áº ß¿ßΓѼδ ó«ßßΓá¡«ó¿Γ∞ «α¿ú¿¡á½∞¡δ⌐ ó¿ñÑ«-αѪ¿¼ »«ß½Ñ
- óδ»«½¡Ñ¡¿∩ úαáΣ¿τÑ߬«⌐ »α«úαá¼¼δ »α¿óÑñÑΓ ¬ Γ«¼π, τΓ« »α¿ ºá»π߬Ñ
- ß½ÑñπεΘÑ⌐ »α«úαá¼¼δ ¼áΦ¿¡á íπñÑΓ "ºí½«¬¿α«óá¡á".
-
- -Åα¿¼Ñα: ôßΓá¡«ó¬á ó¿ñÑ«-αѪ¿¼á.
- #include <stdio.h>
- #include <graph.h>
- int set mode (void);
- struct videoconfig vc;
- char error _message [] = "äá¡¡δ⌐ ó¿ñÑ«-αѪ¿¼ ¡Ñ »«ññÑনóáÑΓß∩".
- main()
- {
- if (!set_mode()) {
- printf ("%s\n", error_message);
- exit(0);
- }
- _setvideoconfig (&vc); /* »«¼ÑΘÑ¡¿Ñ ñá¡¡δσ ¬«¡Σ¿úπαᵿ¿ ó VC */
- /* ñá½ÑÑ ß½ÑñπÑΓ Γѽ« »α«úαá¼¼δ */
- _setvideomode (_DEFAULTMODE); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ó¿ñÑ«-αѪ¿¼á */
-
-
- }
- int set_mode()
- {
- /* »αÑñ»«½áúáÑΓß∩, τΓ« »α«úαá¼¼á ΓαÑíπÑΓ αáºαÑΦÑ¡¿∩ 640x200 */
- if (_setvideomode(_HRES16COLOR))
- return (_HRES16COLOR);
- if (_setvideomode(_HRESBW))
- return (_HRESBW);
- else
- return (0);
- }
-
-
- 4.3. Ä»αÑñѽѡ¿Ñ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿.
-
- éß∩ ¿¡Σ«α¼áµ¿∩ « ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿ ß«ñÑনΓß∩ ó ßΓαπ¬ΓπαÑ Γ¿»á
- videoconfig. æ«ñÑন¼«Ñ ñá¡¡«⌐ ßΓαπ¬Γπαδ «»αÑñѽѡ« ó Σá⌐½Ñ graph.h. Åα¿
- πßΓá¡«ó¬Ñ ó¿ñÑ«-αѪ¿¼á, »αÑñóáα¿Γѽ∞¡« ñ«½ª¡á íδΓ∞ ºáñá¡á ¿¡Σ«α¼áµ¿∩ ñ½∩
- ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿.
-
- -ÅÑαѼѡ¡á∩-ßΓαπ¬Γπαá videoconfig.
-
- ä½∩ »«½πτÑ¡¿∩ ¿¡Σ«α¼áµ¿¿ « ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿ óá¼ ß½ÑñπÑΓ «»¿ßáΓ∞
- »ÑαѼѡ¡πε Γ¿»á videoconfig. äá¡¡á∩ ßΓαπ¬Γπαá íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó
- ó맮óÑ getvideoconfig ó ß½ÑñπεΘѼ Σ«α¼áΓÑ:
-
- struct videoconfig vc; /* «»¿ßá¡¿Ñ »ÑαѼѡ¡«⌐-ßΓαπ¬Γπαδ */
- .
- .
- .
- _getvideoconfig (&vc); /* ¿ß»«½∞º«óá¡¿Ñ »ÑαѼѡ¡«⌐-ßΓαπ¬Γπαδ */
-
-
- -æ«ñÑন¼«Ñ ßΓαπ¬Γπαδ videoconfig.
-
- æΓαπ¬Γπαá videoconfig «»αÑñѽ∩ÑΓß∩ ó úαáΣ¿τÑ߬«¼ ºáú«½«ó«τ¡«¼ Σá⌐½Ñ
- graph.h, ¿ ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ φ½Ñ¼Ñ¡Γδ:
-
- struct videoconfig {
- short numxpixels; /* ¬«½¿τÑßΓó« »¿¬ßѽ«ó »« «ß¿ X */
- short numypixels; /* ¬«½¿τÑßΓó« »¿¬ßѽ«ó »« «ß¿ Y */
- short numtextcols; /* ¬«½¿τÑßΓó« 󫺼«ª¡δσ ΓѬßΓ«óδσ ¬«½«¡«¬ */
- short numtextrows; /* ¬«½¿τÑßΓó« 󫺼«ª¡δσ ΓѬßΓ«óδσ ßΓ᫬ */
- short numcolors; /* ¬«½¿τÑßΓó« αÑá½∞¡δσ µóÑΓ«ó */
- short bitsperpixel; /* ¬«½¿τÑßΓó« αáºα∩ñ«ó ¡á »¿¬ßѽ */
- short numvideopages; /* ¬«½¿τÑßΓó« ñ«ßΓπ»¡δσ ó¿ñÑ«-ßΓαá¡¿µ */
- };
-
- -êß»«½∞º«óá¡¿Ñ ¿¡Σ«α¼áµ¿¿ ß ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿.
-
- ê¡Σ«α¼áµ¿∩ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿ »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ «»αÑñѽѡ¿∩
- αẼÑα¡«ßΓÑ⌐ φ¬αá¡á. é ½εí«¼ úαáΣ¿τÑ߬«¼ αѪ¿¼Ñ µÑ¡Γα φ¬αá¡á ºáñáÑΓß∩
- ß½ÑñπεΘ¿¼¿ ¬««αñ¿¡áΓἿ:
-
- xcenter = vc.numxpixels/2 - 1; /* ¬««αñ¿¡áΓá µÑ¡Γαá »« «ß¿ X */
- Ycenter = vc.numypixels/2 - 1; /* ¬««αñ¿¡áΓá µÑ¡Γαá »« «ß¿ Y */
-
- ÅÑαѼѡ¡á∩ vc.vcnumxpixels-φΓ« τ¿ß½« »¿¬ßѽ«ó »« «ß¿ X, á »ÑαѼѡ¡á∩
- vc.vcnumypixels-φΓ« ¬«½¿τÑßΓó« »¿¬ßѽ«ó »« «ß¿ Y ó ó ΓѬπΘѼ
- ó¿ñÑ«-αѪ¿¼Ñ.
-
- -Åα¿¼Ñα: ÄíαáΘÑ¡¿Ñ ¬ ßΓαπ¬ΓπαÑ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿.
- #include <stdio.h>
- #include <ctype.h>
- #include <graph.h>
- struct videoconfig vc; /* »ÑαѼѡ¡á∩ vc Γ¿»á videoconfig */
-
-
- /* «»ÑαÑñѽѡ¿Ñ ¼áßß¿óá ó¿ñÑ«-αѪ¿¼«ó ¿ ¡á¿¼Ñ¡«óá¡¿⌐ αѪ¿¼«ó, »«ß-
- ¬«½∞¬π τ¿ß½á ¡Ñ »«ß½Ññ«óáΓѽ∞¡δ */
- int modes[12] = {_TEXTBW40, _TEXTC40, _TEXTBW80, _TEXTC80,
- _MRES4COLOR, _MRESNOCOLOR, _HRESBW, _TEXTMONO,
- _MMRES16COLOR, _HRES16COLOR, _ERESNOCOLOR, _ERESCOLOR};
- char *modenames[] = {"TEXTBW40", "TEXTC40", "TEXTBW80",
- "TEXTC80", "MRES²COLOR", "MRESNOCOLOR",
- "HRESBW", "TEXTMONO", "MRES16COLOR",
- "HRES16COLOR", "ERESNOCOLOR", "ERESCOLOR"};
- main()
- {
- int i;
- /* »α«óÑα¬á óßÑσ ó¿ñÑ«-αѪ¿¼«ó */
- for (i=0; i<=11; i++) {
- setvideodeomode (modes[i]);
- getvideoconfig (&vc);
- printf ("\n video mode:\t%s\n",modenames[i]);
- printf (" x pixels:\t%d\n",vc.numxpixels);
- printf (" y pixels:\t%d\n",vc.numypixels);
- printf (" text columns:\t%d\n",vc.numtextcols);
- printf (" text rows:\t%d\n",vc.numtextrows);
- printf (" # of colors:\t%d\n",vc.numcolors);
- printf (" bits/pixel:\t%d\n",vc.bitsperpixel);
- printf (" video pages:\t%d\n",vc.numvideopages);
- print (" Hit return for next video mode");
- _setcolor (2);
- _rectangle (_GBORDER,0,0,vc.numxpixels-5,
-
-
- vc.numypixels-5);
- getchar();
- _clearscreen (_GCLEARSCREEN);
- }
- _setvideomode (_DEFAULTMODE);
- }
-
- Åα«úαá¼¼á, »α¿óÑñÑ¡¡á∩ óδΦÑ, óδºδóáÑΓ ¬áªñδ⌐ 󫺼«ª¡δ⌐ ó¿ñÑ«-αѪ¿¼ ¿
- αáß»ÑτáΓδóáÑΓ ¿¡Σ«α¼áµ¿¿ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿. äá¡¡á∩ »α«úαá¼¼á ΓᬪÑ
- óδτÑατ¿óáÑΓ »« ¬αá∩¼ φ¬αá¡á »α∩¼«πú«½∞¡¿¬.
-
-
- 4.4. êß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ ΓѬßΓ«óδσ αѪ¿¼«ó.
-
- æ ñ¿ß»½Ñ∩¼¿ CGA, EGA ¿ VGA ¼«ª¡« ¿ß»«½∞º«óáΓ∞ µóÑΓ¡δÑ ΓѬßΓ«óδÑ
- αѪ¿¼Ñ _TEXTC40 ¿ _TEXTC80. äá¡¡δÑ αѪ¿¼δ »αÑñ½áúáεΓ 16 »ÑαÑñ¡¿σ ¿ 8
- Σ«¡«óδσ µóÑΓ«ó.
-
- -Äß¡«óδ óδí«αá µóÑΓá ΓѬßΓá.
-
- é ΓѬßΓ«ó«¼ αѪ¿¼Ñ ¬áªñδ⌐ óδßóÑτ¿óáѼδ⌐ ß¿¼ó«½ ΓαÑíπÑΓ 2 íá⌐Γá
- ó¿ñÑ«-»á¼∩Γ¿. ÅÑαóδ⌐ íá⌐Γ ß«ñÑαª¿Γ ¬«ñ ASCII, »αÑñßΓáó½∩εΘ¿⌐ ß¿¼ó«½, á
- óΓ«α«⌐ íá⌐Γ ß«ñÑαª¿Γ áΓα¿íπΓ ¿º«íαᪿ¡¿∩. é µóÑΓ¡«¼ ΓѬßΓ«ó«¼ αѪ¿¼Ñ
- CGA, íá⌐Γ-áΓα¿íπΓ «»αÑñѽ∩ÑΓ µóÑΓ ¿ ¡á½¿τ¿Ñ ¼Ñαµá¡¿∩ ß¿¼ó«½á. ê¼ÑεΓß∩ 16
- µóÑΓ«ó: º¡áτÑ¡¿∩ »¿¬ßѽ«ó CGA ¿ ßΓá¡ñáαΓ¡δÑ º¡áτÑ¡¿∩ »¿¬ßѽ«ó EGA ¿ VGA.
-
- ū߬«½∞¬π »á½¿Γαδ EGA ¿ VGA ¼«úπΓ íδΓ∞ »ÑαÑ»½á¡¿α«óá¡δ, ñá¡¡δÑ
- º¡áτÑ¡¿∩ ñ«½ª¡δ íδΓ∞ ºáñá¡δ Γᬿ¼ «íαẫ¼, τΓ«íδ ß««ΓóÑΓßΓó«óáΓ∞ ½εí«¼π
- ¡áí«απ 16 µóÑΓ«ó ß ß««ΓóÑΓßΓóπεΘÑ⌐ ¬áαΓ«⌐ »á½¿Γαδ. (ê¡Σ«α¼áµ¿ε «
- »ÑαÑ»½á¡¿α«óá¡¿¿ º¡áτÑ¡¿⌐ ∩τÑѬ EGA ¿ VGA ß¼«Γα¿ΓÑ ß««ΓóÑΓßΓóÑ¡¡«
- αáºñѽδ 4.6 ¿ 4.7).
-
-
- -êß»«½∞º«óá¡¿Ñ µóÑΓ«ó ΓѬßΓá.
-
- ä½∩ Γ«ú«,τΓ«íδ ¡á⌐Γ¿ º¡áτÑ¡¿Ñ ß««ΓóÑΓßΓóπεΘÑú« º¡áτÑ¡¿∩ »¿¬ßѽá ñ½∩
- ΓѬπΘÑú« µóÑΓá ΓѬßΓá, ¿ß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε _gettextcolor. ç¡áτÑ¡¿∩
- »¿¬ßѽ«ó ó »αÑñѽáσ «Γ 0 ñ« 15 ¿¡ΓÑα»αÑΓ¿απεΓß∩ ¬á¬ «íδτ¡δÑ µóÑΓá.
- ç¡áτÑ¡¿∩ »¿¬ßѽ«ó «Γ 16 ñ« 31-φΓ« ΓÑ ªÑ ßá¼δÑ µóÑΓá, τΓ« ¿ 0-15, ¡« ß
- ¼ÑαµáεΘ¿Ñ.
-
- ôßΓá¡áó½¿óáεΓß∩ µóÑΓá ñ½∩ ΓѬßΓ«óδσ αѪ¿¼«ó »«ßαÑñßΓó«¼ Σπ¡¬µ¿¿
- _settextcolor. äá¡¡á∩ Σπ¡¬µ¿∩ ¿ß»«½∞ºπÑΓ Ññ¿¡ßΓóÑ¡¡δ⌐ áαúπ¼Ñ¡Γ, ¬«Γ«αδ⌐
- ºáñáÑΓ º¡áτÑ¡¿Ñ »¿¬ßѽá ñ½∩ ¿ß»«½∞º«óá¡¿∩ ó ΓѬßΓ«óδσ «»Ñαᵿ∩σ.
- ç¡áτÑ¡¿Ñ »¿¬ßѽá 0 »α¿ó«ñ¿Γ ¬ ¡Ñó¿ñ¿¼«¼π óδó«ñπ, »«ß¬«½∞¬π «¡ óßÑúñá
- »αÑñßΓáó½∩ÑΓ ΓѬπΘ¿⌐ µóÑΓ Σ«¡á. ûóÑΓ ΓѬßΓá ¡Ñ ó½¿∩ÑΓ ¡á «íδτ¡δ⌐ óδó«ñ
- ∩ºδ¬á æê. ä½∩ óδó«ñá µóÑΓ¡«ú« ΓѬßΓá ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε
- _outtext. ì¿ªÑ «»αÑñѽ∩εΓß∩ º¡áτÑ¡¿∩ ∩τÑѬ ñ½∩ µóÑΓ¡δσ ΓѬßΓ«óδσ
- αѪ¿¼«ó:
-
- ⁿ ûóÑΓ ⁿ ûóÑΓ ⁿ ûóÑΓ ⁿ ûóÑΓ
-
- 0 τÑα¡δ⌐ 4 ¬αáß¡δ⌐ 8 ΓѼ¡«-ßÑαδ⌐ 12 ßóÑΓ½«-¬αáß¡δ⌐
- 1 ú«½πí«⌐ 5 ½¿½«óδ⌐ 9 ßóÑΓ½«-ú«½π- 13 ßóÑΓ½«-½¿½«óδ⌐
- (Σαπ¬ß¿¡) í«⌐
- 2 ºÑ½Ñ¡δ⌐ 6 ¬«α¿τ¡Ñóδ⌐ 10 ßóÑΓ½«-ºÑ½Ñ- 14 ªÑ½Γδ⌐
- ¡δ⌐
- 3 ºÑ½Ñ¡«óáΓ«- 7 íѽδ⌐ 11 ßóÑΓ½«-ºÑ½Ñ- 15 ∩ᬫ-íѽδ⌐
- -ú«½πí«⌐ ¡«óáΓ«-ú«½πí«⌐
-
-
-
- -Åα¿¼Ñα: éδó«ñ µóÑΓ¡«ú« ΓѬßΓá.
- #include <stdio.h>
- #include <graph.h>
- char buffer [225];
-
-
- main()
- {
- int i,j;
- long int delay;
- _setvideomode (_TEXTC80);
- for (j=0; j<= 7; j++) {
- _setbkcolor (j); /* Σ«¡«óδÑ µóÑΓá */
- _settextrosition (1,1);
- printf ("bkocolor: %d\n", j);
- for (i=0; i<= 15; i++) {
- _settextcolor (i); /* µóÑΓá ΓѬßΓá */
- _settextrosition (5+i,i);
- sprintf (buffer, "Color: %d\n", i9;
- _outtext (buffer);
- }
- /* »áπºá */
- for (delay = 0; delay <=200000; delay++);
- }
- _clearscreen (_GCLEARSCREEN);
- _setvideomode (_DEFAULTMODE);
- }
-
- Åα¿óÑñÑ¡¡á∩ óδΦÑ »α«úαá¼¼á ó µ¿¬½Ñ »α«σ«ñ¿Γ τÑαѺ óßÑ ¬«¼í¿¡áµ¿¿
- µóÑΓ«ó Σ«¡á ¿ ΓѬßΓá.
-
-
- 4.5. êß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ úαáΣ¿τÑ߬¿σ αѪ¿¼«ó CGA.
-
- ûóÑΓ¡δÑ úαáΣ¿τÑ߬¿Ñ αѪ¿¼δ CGA (Γ« ÑßΓ∞ MRES4COLOR ¿ _MRESNOCOLOR)
- óδßóÑτ¿óáεΓ 4 µóÑΓá (¿½¿ «ΓΓÑ¡¬¿ ßÑα«ú«), óδí¿αáѼδÑ ¿º ¡Ñ߬«½∞¬¿σ
- ºáñá¡¡δσ »á½¿Γα µóÑΓ«ó. Ä¡¿ óδßóÑτ¿óáεΓ µóÑΓá »ÑαÑñ¡Ñú« »½á¡á ¡á µóÑΓáσ
- Σ«¡á, óδí¿αáѼδσ ¿º 16 󫺼«ª¡δσ µóÑΓ«ó.
-
- -ûóÑΓ¡á∩ úαáΣ¿¬á CGA.
-
- é úαáΣ¿τÑ߬«¼ αѪ¿¼Ñ »¿¬ßѽ φ¬αá¡á »αÑñßΓáó½∩ÑΓß∩ ó ó¿ñÑ «ñ¡«-,
- ñóπσ- ¿½¿ τÑΓδαÑσ αáºα∩ñ¡«ú« º¡áτÑ¡¿∩, ó ºáó¿ß¿¼«ßΓ¿ «Γ óδíαá¡¡«ú«
- αѪ¿¼á. äá¡¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ ¿ºóÑßΓ¡«, ¬á¬ "º¡áτÑ¡¿Ñ »¿¬ßѽá". é
- ñ«íáó½Ñ¡¿Ñ ¬ º¡áτÑ¡¿ε »¿¬ßѽá ßπΘÑßΓóπÑΓ ÑΘÑ »«α∩ñ¬«ó«Ñ »αÑñßΓáó½Ñ¡¿Ñ
- µóÑΓá. èáªñδ⌐ µóÑΓ, ¬«Γ«αδ⌐ íπñÑΓ óδßóÑτ¿óáΓ∞ß∩ ó «»αÑñѽѡ¡«¼
- ó¿ñÑ«-αѪ¿¼Ñ, »αÑñßΓáó½∩ÑΓß∩ ó ó¿ñÑ π¡¿¬á½∞¡«ú« »«α∩ñ¬«ó«ú« º¡áτÑ¡¿∩.
- æ«ßΓáó½Ñ¡¿Ñ ¬áαΓδ º¡áτÑ¡¿⌐ »¿¬ßѽ«ó, ß««ΓóÑΓßΓóπεΘ¿σ ñÑ⌐ßΓó¿Γѽ∞¡«
- ¿º«íαáªáÑ¼δ¼ µóÑΓ«¼, ñáÑΓ ó αѺπ½∞ΓáΓÑ "»á½¿Γαπ". ûóÑΓ¡á∩ úαáΣ¿¬á CGA
- »«ññÑনóáÑΓ 4 »á½¿Γαδ ¿º 4 µóÑΓ«ó. Å὿Γαá «»αÑñѽ∩ÑΓ »«ñ¼¡«ªÑßΓó« óßÑσ
- 󫺼«ª¡δσ µóÑΓ«ó, ¿ ß«ßΓ«¿Γ ¿º µóÑΓá Σ«¡á (º¡áτÑ¡¿Ñ »¿¬ßѽá 0) ¿ ΓαÑσ
- ¡áí«α«ó µóÑΓ«ó »ÑαÑñ¡Ñú« »½á¡á. Å὿Γαá «»αÑñѽ∩ÑΓ Γá¬ªÑ σáαá¬ΓÑα¿ßΓ¿¬¿
- óßÑú« ¿º«íαáªÑ¡¿∩.
-
- ûóÑΓ Σ«¡á ¼«ªÑΓ íδΓ∞ «ñ¡¿¼ ¿º ¿¼ÑεΘ¿σß∩ 16 µóÑΓ«ó. ä½∩ «í«απñ«óá¡¿∩
- CGA »á½¿Γαá µóÑΓ«ó »ÑαÑñ¡Ñú« »½á¡á ºáñá¡á ºáαá¡ÑÑ ¿ ¡Ñ ¼«ªÑΓ íδΓ∞
- ¿º¼Ñ¡Ñ¡á. 쫼Ñα »á½¿Γαδ-φΓ« µÑ½«Ñ τ¿ß½«, ¬«Γ«α«Ñ óδí¿αáÑΓ «ñ¡π ¿º
- ºáñá¡¡δσ »á½¿Γα.
-
- -êß»«½∞º«óá¡¿Ñ »á½¿Γα.
-
- é ó¿ñÑ«-αѪ¿¼Ñ _MRES4COLOR ¿¼ÑεΓß∩ τÑΓδαÑ »á½¿Γαδ. Å὿Γαπ ¼«ª¡«
- óδíαáΓ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ _selectpalette. Æáí½¿µá, »α¿óÑñÑ¡¡á∩ ¡¿ªÑ,
- »«¬áºδóáÑΓ ß««ΓóÑΓßΓó¿Ñ ¼Ñªñπ º¡áτÑ¡¿∩¼¿ »¿¬ßѽ«ó ¿ µóÑΓ«ó ñ½∩ ¬áªñ«⌐
- »á½¿Γαδ. ö«¡ ¼«ªÑΓ íδΓ∞ πßΓá¡«ó½Ñ¡ «ñ¡¿¼ ¿º 16 󫺼«ª¡δσ µóÑΓ«ó.
-
-
- 쫼Ñα ç¡áτÑ¡¿Ñ »¿¬ßѽá
- »á½¿Γαδ 1 2 3
-
-
- 0 ºÑ½Ñ¡δ⌐ ¬αáß¡δ⌐ ¬«α¿τ¡Ñóδ⌐
- 1 ºÑ½Ñ¡«óáΓ«-ú«- ½¿½«óδ⌐ ßóÑΓ½«-ßÑαδ⌐
- ½πí«⌐
- 2 ßóÑΓ½«-ºÑ½Ñ¡δ⌐ ßóÑΓ½«-¬αáß¡δ⌐ ªÑ½Γδ⌐
- 3 ßóÑΓ½«-ºÑ½Ñ¡«- ßóÑΓ½«-½¿½«óδ⌐ íѽδ⌐
- óáΓ«-ú«½πí«⌐
-
-
-
- é¿ñÑ«-αѪ¿¼ _MRESNOCOLOR ¿ß»«½∞ºπÑΓß∩ ñ½∩ τÑα¡«-íѽ«ú« ¿º«íαáªÑ¡¿∩ ß
- »«¼«Θ∞ε »á½¿Γα, ß«ßΓ«∩Θ¿σ ¿º «ΓΓÑ¡¬«ó ßÑα«ú« µóÑΓá.
-
- ÉѪ¿¼ _MRESNOCOLOR ¼«ªÑΓ Γá¬ªÑ ó«ß»α«¿ºó«ñ¿Γ∞ µóÑΓá ¡á µóÑΓ¡«¼
- ñ¿ß»½ÑÑ. Äñ¡á¬«, ¡á µóÑΓ¡«¼ ñ¿ß»½ÑÑ ¿¼ÑεΓß∩ Γ«½∞¬« ñóÑ »á½¿Γαδ. ä½∩
- óδí«αá «ñ¡«⌐ ¿º ºáαá¡ÑÑ «»αÑñѽѡ¡δσ »á½¿Γα »α¿¼Ñ¡∩ÑΓß∩ Σπ¡¬µ¿∩
- _selectpalette.
-
- Åα¿óÑñÑ¡¡á∩ ¡¿ªÑ »á½¿Γαá »«¬áºδóáÑΓ ß««ΓóÑΓßΓó¿Ñ ¼Ñªñπ º¡áτÑ¡¿∩¼¿
- »¿¬ßѽ«ó ¿ µóÑΓἿ ñ½∩ ¬áªñ«⌐ »á½¿Γαδ:
-
- 쫼Ñα ç¡áτÑ¡¿Ñ »¿¬ßѽá
- »á½¿Γαδ 1 2 3
-
- 0 ú«½πí«⌐ ¬αáß¡δ⌐ ßóÑΓ½«-ßÑαδ⌐
- 1 ßóÑΓ½«-ú«½πí«⌐ ßóÑΓ½«-¬αáß¡δ⌐ íѽδ⌐
-
-
-
- öπ¡¬µ¿ε _selectpalette ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Γ«½∞¬« ß ó¿ñÑ«-αѪ¿¼á¼¿
- _MRES4COLOR ¿ _MRESNOCOLOR.
-
- -Åα¿¼Ñα: 꺫íαáªÑ¡¿Ñ µóÑΓ«ó »á½¿Γαδ.
- #include <stdio.h>
- #include <graph.h>
-
-
- long bkcolor[8] = {_BLACK, _BLUE, _GREEN, _CYAN,
- _RED, _MAGENTA, _BROWN, _WHITE};
- char *blcolor name [] = {"_BLACK", "_BLUE", "_GREEN",
- "_CYAN", "_RED", "_MAGENTA", "_BROWN", "_WHITE"};
- main()
- {
- int i, j, k, delay;
- _setvideomode (_MRES4COLOR); /* ¿ß»«½∞º«óá¡¿Ñ µóÑΓ¡«ú« αѪ¿¼á CGA
- */
- for (k=0; k <= 7; k++) {
- _setbkcolor (bkcolor[k]);
- for (i=0; i<= 3; i++) {
- _selectpalette (i);
- for (j=0; j<=3; j++) {
- _settextposition (1,1);
- _setcolor (j);
- printf ("background color: %8s\n", bkcolor nameGk[);
- printf ("palette: %d\ncolor: %d\n",i,j);
- _rectangle (_GFILLINTERIOR,160,100,320,200);
- for (delay=0; delay<= 20000; velay++)
- }
- }
- }
- _setvideomode (_DEFAULTMODE);
- }
-
- äá¡¡á∩ »α«úαá¼¼á πßΓá¡áó½¿óáÑΓ ó¿ñÑ«-αѪ¿¼ _MRES4COLOR ¿ ºáΓѼ
- »α«¬απτ¿óáÑΓ óßÑ ¬«¼í¿¡áµ¿¿ Σ«¡á ¿ µóÑΓ«ó »á½¿Γα.
-
-
-
-
- 4.6. êß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ úαáΣ¿τÑ߬¿σ αѪ¿¼«ó EGA.
-
- é¿ñÑ«-αѪ¿¼δ _ MRES16COLOR, _HRES16COLOR, _ERESCOLOR ¿ß»«½∞ºπεΓß∩
- ñ½∩ »«½πτÑ¡¿∩ π½¿τΘÑ¡¡«⌐ µóÑΓ¡«⌐ úαáΣ¿¬¿ ß áñá»ΓÑα«¼ EGA. ÉѪ¿¼δ CGA
- Γá¬ªÑ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß áñá»ΓÑα«¼ EGA, ¡« ¡á πα«ó¡Ñ αáºαÑΦÑ¡¿∩ CGA ¿
- ß π¼Ñ¡∞ΦÑ¡¡δ¼ ¡áí«α«¼ µóÑΓ«ó.
-
- -ûóÑΓ¡δÑ úαáΣ¿τÑ߬¿Ñ αѪ¿¼δ EGA.
-
- é úαáΣ¿τÑ߬¿σ αѪ¿¼áσ »¿¬ßѽ ¼«ªÑΓ íδΓ∞ »αÑñßΓáó½Ñ¡á «ñ¡«-, ñóπσ-
- ¿½¿ τÑΓδαÑσ-αáºα∩ñ¡δ¼ º¡áτÑ¡¿Ñ¼ ó ºáó¿ß¿¼«ßΓ¿ «Γ óδíαá¡¡«ú« αѪ¿¼á.
- äá¡¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ ¿ºóÑßΓ¡«, ¬á¬ "º¡áτÑ¡¿Ñ »¿¬ßѽá". é ñ«»«½¡Ñ¡¿Ñ ¬
- º¡áτÑ¡¿ε ∩τÑ⌐¬¿ ßπΘÑßΓóπÑΓ ¿ »«α∩ñ¬«ó«Ñ »αÑñßΓáó½Ñ¡¿Ñ µóÑΓá. èáªñδ⌐
- µóÑΓ, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ óδßóÑτÑ¡ ó «»αÑñѽѡ¡«¼ ó¿ñÑ«-αѪ¿¼Ñ,
- »αÑñßΓáó½∩ÑΓß∩ π¡¿¬á½∞¡δ¼ »«α∩ñ¬«óδ¼ º¡áτÑ¡¿Ñ¼. èáαΓá, »ÑαÑó«ñ∩Θá∩
- º¡áτÑ¡¿∩ ∩τÑѬ ó αÑá½∞¡δÑ óδßóÑτ¿óáѼδÑ µóÑΓá, ñáÑΓ ó αѺπ½∞ΓáΓÑ
- "»á½¿Γαπ" óδßóÑτ¿óáѼδσ µóÑΓ«ó.
-
- Å὿Γαá µóÑΓ«ó ñ«ßΓπ»¡á, ¬á¬«⌐ íδ ¿º úαáΣ¿τÑ߬¿σ αѪ¿¼«ó EGA ¡Ñ
- ¿ß»«½∞º«óá½ß∩. Å὿Γαδ EGA ¼«úπΓ íδΓ∞ »ÑαÑ»½á¡¿α«óá¡δ ¿ »ÑαÑ«»αÑñѽѡδ ó
- »α«úαá¼¼Ñ. æΓá¡ñáαΓ¡á∩ »á½¿Γαá ñ½∩ αѪ¿¼«ó EGA Γá ªÑ ßá¼á∩, τΓ« ¿
- »á½¿Γαá ñ½∩ µóÑΓ¡δσ ΓѬßΓ«óδσ αѪ¿¼«ó.
-
- -ÅÑαÑ«»αÑñѽѡ¿Ñ «Γñѽ∞¡δσ µóÑΓ«ó.
-
- ä½∩ »ÑαÑ«»αÑñѽѡ¿∩ «ñ¡«ú« º¡áτÑ¡¿∩ »¿¬ßѽá ó ºáñá¡¡δ⌐ µóÑΓ (¬«Γ«αδ⌐
- ñ«½ªÑ¡ íδΓ∞ «í∩ºáΓѽ∞¡« µóÑΓ«¼, »«ññÑনóáÑ¼δ¼ ΓѬπΘ¿¼ ó¿ñÑ«-αѪ¿¼«¼)
- ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ _remappalette. ìá»α¿¼Ñα, »α¿óÑñÑ¡¡á∩ ¡¿ªÑ Σπ¡¬µ¿∩
- »ÑαÑ«»αÑñѽ∩ÑΓ º¡áτÑ¡¿Ñ ∩τÑ⌐¬¿ 1 ¡á º¡áτÑ¡¿Ñ _RED. Å«ß½Ñ óδ»«½¡Ñ¡¿∩
- ñá¡¡«ú« «»ÑαáΓ«αá ú«½πí«⌐ µóÑΓ íπñÑΓ óѺñÑ »«∩ó½∩Γ∞ß∩, ¬á¬ ¬αáß¡δ⌐:
-
- _remappalette (1, _RED); /* »ÑαѡạáτÑ¡¿Ñ ú«½πí«ú« ¡á ¬αáß¡δ⌐ */
-
-
- -ÅÑαÑ«»αÑñѽѡ¿Ñ ¡áí«αá µóÑΓ«ó.
-
- ä½∩ »ÑαÑ«»αÑñѽѡ¿∩ óßÑσ º¡áτÑ¡¿⌐ »¿¬ßѽ«ó «ñ¡«óαѼѡ¡« ¿ß»«½∞ºπÑΓß∩
- Σπ¡¬µ¿∩ _remapallpalette. Çαúπ¼Ñ¡Γ Σπ¡¬µ¿¿ π¬áºδóáÑΓ ¡á ¼áßß¿ó ¡«¼Ñα«ó
- µóÑΓ«ó, «ΓαáªáεΘ¿σ »ÑαÑ»½á¡¿α«ó¬π. ÅÑαóδ⌐ ¡«¼Ñα µóÑΓá ó ß»¿ß¬Ñ ßΓá¡ÑΓ
- ¡«óδ¼ µóÑΓ«¼, ßó∩ºá¡¡δ¼ ß« º¡áτÑ¡¿Ñ¼ »¿¬ßѽá 0.
-
- 쫼Ñα ó ó맮óÑ Σπ¡¬µ¿¿, πßΓá¡áó½¿óáεΘÑ⌐ µóÑΓ (Γᬫ⌐, ¬á¬ _setcolor)
- ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ ó ¿¼ÑεΘÑ⌐ß∩ »á½¿ΓαÑ µóÑΓ«ó. é ßΓá¡ñáαΓ¡«⌐ ΓѬßΓ«ó«⌐
- »á½¿ΓαÑ ¿¡ñÑ¬ß 1 «º¡áτáÑΓ "ú«½πí«⌐". àß½¿ »á½¿Γαá »ÑαÑ»½á¡¿απÑΓß∩,
- »«α∩ñ«¬ µóÑΓ«ó ó »á½¿ΓαÑ ¿º¼Ñ¡∩ÑΓß∩. é αѺπ½∞ΓáΓÑ, µóÑΓ, »«½πτáѼδ⌐ »«
- ñá¡¡«¼π º¡áτÑ¡¿ε »¿¬ßѽá, Γá¬ªÑ ¿º¼Ñ¡∩ÑΓß∩. 諽¿τÑßΓó« »½á¡¿απѼδσ
- µóÑΓ«ó ºáó¿ß¿Γ «Γ ¬«½¿τÑßΓóá µóÑΓ«ó, »«ññÑনóáѼδσ ΓѬπΘ¿¼
- ó¿ñÑ«-αѪ¿¼«¼.
-
- öπ¡¬µ¿¿ _remappalette ¿ _remapallpalette αáí«ΓáεΓ ó« óßÑσ αѪ¿¼áσ,
- ¡« Γ«½∞¬« ß «í«απñ«ó᡿Ѽ EGA ¿½¿ VGA. àß½¿ óδ ßñѽáÑΓÑ »«»δΓ¬π
- óδ»«½¡¿Γ∞ ñá¡¡δÑ Σπ¡¬µ¿¿ íѺ «í«απñ«óá¡¿∩ EGA ¿½¿ VGA, Σπ¡¬µ¿¿ ñáñπΓ
- ßí«⌐ ¿ ó«ºóαáΓ∩Γ º¡áτÑ¡¿Ñ-1.
-
- -Åα¿¼Ñα: ÅÑαÑ»½á¡¿α«óá¡¿Ñ µóÑΓ«ó »á½¿Γαδ.
- #include <stdio.h>
- #include <graph.h>
-
- main()
- {
- _setdideomode (_ERESCOLOR);
- _settextposition (1,1); /* «íδτ¡á∩ »á½¿Γαá */
- printf ("Normal palette");
- _setcolor (4); /* ¬αáß¡δ⌐ ó ßΓá¡ñáαΓ¡«⌐ »á½¿ΓαÑ */
- _rectangle (_ GFILLINTERIOR, 50,50,200,200);
- getchar(); /* «ª¿ñá¡¿Ñ ¬½ετá ENTER */
- _remappalette (4. _BLUE); /* »αÑóαáΘÑ¡¿Ñ ¬αáß¡«ú« ó ú«½πí«⌐ */
-
-
- _settextposition (1,1);
- printf ("Remapped palette");
- _setcolor (4); /* ú«½πí«⌐ */
- _rectangle (_GFILLINTERIOR, 50,50,200,200);
- getchar(); /* «ª¿ñá¡¿Ñ ¬½ετá ENTER */
- _remappalette (4, _RED); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ */
- _settextposition (1,1);
- printf ("Restored palette");
- _setcolor (4); /* ¬αáß¡δ⌐ */
- _rectangle (_GFILLINTERIOR,50,50,200,200);
- getchar(); /* «ª¿ñá¡¿Ñ ¬½ετá ENTER */
- _clearscreen (_GCLEARSCREEN);
- _setvideomode (_DEFAULTMODE);
- }
-
- äá¡¡á∩ »α«úαá¼¼á óδτÑατ¿óáÑΓ »α∩¼«πú«½∞¡¿¬ ¬αáß¡«ú« µóÑΓá. é
- ßΓá¡ñáαΓ¡«⌐ »á½¿ΓαÑ EGA º¡áτÑ¡¿Ñ »¿¬ßѽá 4 «º¡áτáÑΓ ¬αáß¡δ⌐ µóÑΓ. äá¡¡«Ñ
- ¡áº¡áτÑ¡¿Ñ »ÑαÑ«»αÑñѽ∩ÑΓß∩ ó ñá¡¡«⌐ »α«úαá¼¼Ñ ¡á _BLUE ¿ »α∩¼«πú«½∞¡¿¬
- »ÑαÑτÑατ¿óáÑΓß∩. é ¬«¡µÑ »α«úαá¼¼δ º¡áτÑ¡¿Ñ »¿¬ßÑ½á »ÑαÑ«»αÑñѽ∩ÑΓß∩
- ¡áºáñ ó «α¿ú¿¡á½∞¡δ⌐ µóÑΓ.
-
-
- 4.7. êß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ úαáΣ¿τÑ߬¿σ αѪ¿¼«ó VGA.
-
- æ ñ¿ß»½ÑѼ VGA ¿ß»«½∞ºπεΓß∩ ó¿ñÑ«-αѪ¿¼δ _VRES2COLOR, _VRES16COLOR,
- _MRES256COLOR. æ «í«απñ«ó᡿Ѽ VGA ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ Γá¬ªÑ ¿ αѪ¿¼δ
- EGA ¿ CGA, ¡« ß í«½ÑÑ ¡¿º¬«⌐ αáºαÑΦáεΘÑ⌐ ß»«ß«í¡«ßΓ∞ε ¿ «úαá¡¿τÑ¡¡δ¼
- ¡áí«α«¼ µóÑΓ«ó.
-
-
- -ûóÑΓ¡δÑ úαáΣ¿τÑ߬¿Ñ αѪ¿¼δ VGA.
-
- é úαáΣ¿τÑ߬«¼ αѪ¿¼Ñ »¿¬ßѽ ¼«ªÑΓ íδΓ∞ »αÑñßΓáó½Ñ¡á ¬á¬ «ñ¡«-, ñóπσ-
- ¿½¿ τÑΓδαÑσ-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ, ó ºáó¿ß¿¼«ßΓ¿ «Γ óδíαá¡¡«ú« αѪ¿¼á. äá¡¡«Ñ
- »αÑñßΓáó½Ñ¡¿Ñ ¿ºóÑßΓ¡«, ¬á¬ "º¡áτÑ¡¿Ñ »¿¬ßѽá". èα«¼Ñ Γ«ú«, ó ñ«»«½¡Ñ¡¿Ñ
- ¬ º¡áτÑ¡¿ε »¿¬ßѽá ßπΘÑßΓóπÑΓ »«α∩ñ¬«ó«Ñ »αÑñßΓáó½Ñ¡¿Ñ µóÑΓá. èáªñδ⌐
- µóÑΓ, óδßóÑτ¿óáѼδ⌐ ó «»αÑñѽѡ¡«¼ ó¿ñÑ«-αѪ¿¼Ñ, »αÑñßΓáó½Ñ¡ π¡¿¬á½∞¡δ¼
- »«α∩ñ¬«óδ¼ º¡áτÑ¡¿Ñ¼. Éáß»αÑñѽѡ¿Ñ º¡áτÑ¡¿⌐ ∩τÑѬ ó αÑá½∞¡δÑ
- óδßóÑτ¿óáѼδÑ µóÑΓá ñáÑΓ ó αѺπ½∞ΓáΓÑ "»á½¿Γαπ" óδßóÑτ¿óáѼδσ µóÑΓ«ó.
-
- ûóÑΓ¡á∩ úαáΣ¿¬á VGA «»Ñα¿απÑΓ »«τΓ¿ ß 262144 (φ¬ó¿óá½Ñ¡Γ 256è)
- µóÑΓἿ. ÉѪ¿¼ úαáΣ¿¬¿ _VRES2COLOR óδßóÑτ¿óáÑΓ 2 µóÑΓá, αѪ¿¼
- _VRES16COLOR óδßóÑτ¿óáÑΓ 16 µóÑΓ«ó, αѪ¿¼ _MRES256COLOR óδßóÑτ¿óáÑΓ 256
- µóÑΓ«ó ¿º ¿¼ÑεΘ¿σß∩ ó VGA.
-
- ü«½∞Φ«Ñ ¬«½¿τÑßΓó« 󫺼«ª¡δσ µóÑΓ«ó ó αѪ¿¼áσ VGA ßΓá¡«ó¿Γß∩
- 󫺼«ª¡δ¼ »α¿ ¿ß»«½∞º«óá¡¿¿ ΓαÑσ íá⌐Γ«ó ¿¡Σ«α¼áµ¿¿, »αÑñßΓáó½∩εΘÑ⌐
- ¿¡Γѡ߿ó¡«ßΓ∞ ¬αáß¡«ú«, ºÑ½Ñ¡«ú« ¿ ú«½πí«ú« ñ½∩ ¬áªñ«⌐ »¿¬ßѽÑ. é ¬áªñ«¼
- íá⌐ΓÑ ñóá ßΓáαΦ¿σ αáºα∩ñá ñ«½ª¡δ αáó¡∩Γ∞ß∩ ¡π½ε. ÄßΓáóΦ¿Ñß∩ ΦÑßΓ∞
- αáºα∩ñ«ó «»αÑñѽ∩εΓ ¿¡Γѡ߿ó¡«ßΓ∞ ú«½πí«ú«, ºÑ½Ñ¡«ú« ¿ ¬αáß¡«ú«
- (τ¿ΓáÑΓß∩ «Γ ßΓáαΦÑú« íá⌐Γá ¬ ¼½áñΦѼπ). Æα¿ µóÑΓá, ¬áªñδ⌐ ß ΦÑßΓ∞ε
- αáºα∩ñἿ ¿¡Γѡ߿ó¡«ßΓ¿ ñáεΓ 64**3 ¿½¿ 262144 «ΓΓÑ¡¬á. (φ¬ó¿óá½Ñ¡Γ
- 256è). ìá»α¿¼Ñα, αáó¡δÑ º¡áτÑ¡¿∩ ¬αáß¡«ú«, ºÑ½Ñ¡«ú« ¿ ú«½πí«ú«
- ¿ß»«½∞ºπεΓß∩ ñ½∩ »«½πτÑ¡¿∩ íѽ«ú« ¡¿º¬«⌐ ¿¡Γѡ߿ó¡«ßΓ¿, ΓᬠτΓ« Γα¿
- íá⌐Γá µóÑΓá ñ«½ª¡δ ß«ñÑαªáΓ∞ ß½ÑñπεΘÑÑ:
-
- ú«½πí«⌐ ºÑ½Ñ¡δ⌐ ¬αáß¡δ⌐
- 00011111 00011111 00011111
- ßΓáαΦ¿Ñ αáºα∩ñδ-------------------->¼½áñΦ¿Ñ αáºα∩ñδ
-
- ū߬«½∞¬π ¡«¼Ñαá µóÑΓ«ó αáºñѽ∩εΓß∩ ¼Ñªñπ íá⌐ΓἿ, ¡«¼Ñαá µóÑΓ«ó ¡Ñ
- ∩ó½∩εΓß∩ »«ß½Ññ«óáΓѽ∞¡δ¼¿ (¬á¬ ¿ ó ß½πτáÑ CGA ¿½¿ EGA).
-
- 16 µóÑΓ«ó ñ½∩ ßΓá¡ñáαΓ¡«⌐ »á½¿Γαδ αѪ¿¼á _VRES16COLOR ¿ »Ñαóδ⌐ ñ½∩
- ßΓá¡ñáαΓ¡«⌐ »á½¿Γαδ αѪ¿¼á _MRES256COLOR ΓÑ ªÑ ßá¼δÑ, τΓ« ¿ ñ½∩
- ΓѬßΓ«óδσ µóÑΓ¡δσ αѪ¿¼«ó.
-
- -ÅÑαÑ«»αÑñѽѡ¿Ñ «Γñѽ∞¡δσ µóÑΓ«ó.
-
- ä½∩ »ÑαÑ«»αÑñѽѡ¿∩ «ñ¡«ú« º¡áτÑ¡¿∩ »¿¬ßѽá ó «»αÑñѽѡ¡δ⌐ µóÑΓ
- ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ _remappalette. Åα¿óÑñÑ¡¡á∩ ¡¿ªÑ Σπ¡¬µ¿∩
- »ÑαÑ«»αÑñѽ∩ÑΓ º¡áτÑ¡¿Ñ »¿¬ßѽá 1 ó µóÑΓ, ºáñá¡¡δ⌐ ¬«¡ßΓá¡Γ«⌐ _RED
- (¬«Γ«αá∩ »αÑñßΓáó½∩ÑΓ ¬αáß¡δ⌐ µóÑΓ). Å«ß½Ñ Γ«ú«, ¬á¬ ñá¡¡δ⌐ «»ÑαáΓ«α
- óδ»«½¡¿Γß∩, µóÑΓ, ºáñá¡¡δ⌐ ú«½πíδ¼, íπñÑΓ óδßóÑτ¿óáΓ∞ß∩ , ¬á¬ ¬αáß¡δ⌐:
-
- _remappalette (1, _RED); /* »ÑαѡạáτÑ¡¿Ñ ú«½πí«ú« ó ¬αáß¡δ⌐ ó
- αѪ¿¼Ñ VGA */
-
- -ÅÑαѡạáτÑ¡¿Ñ ¡áí«αá µóÑΓ«ó.
-
- ùΓ«íδ »Ñαѡạáτ¿Γ∞ óßÑ ¿¼ÑεΘ¿Ñß∩ ó ¡á½¿τ¿¿ µóÑΓá «ñ¡«óαѼѡ¡«,
- ó«ß»«½∞ºπ⌐Γѽ∞ Σπ¡¬µ¿Ñ⌐ _remapallpalette. Çαúπ¼Ñ¡Γ Σπ¡¬µ¿¿ áñαÑßπÑΓ
- ¼áßß¿ó ¡«¼Ñα«ó µóÑΓ«ó, «ΓαáªáεΘ¿σ »ÑαѡạáτÑ¡¿Ñ. ÅÑαóδ⌐ ¡«¼Ñα µóÑΓá ó
- ß»¿ß¬Ñ ßΓá¡ÑΓ ¡«óδ¼ µóÑΓ«¼, ß««ΓóÑΓßΓóπεΘ¿¼ º¡áτÑ¡¿ε »¿¬ßѽá 0.
-
- ù¿ß½« ó ó맮óÑ Σπ¡¬µ¿¿, πßΓá¡áó½¿óáεΘÑ⌐ µóÑΓ (Γᬫ⌐ ¬á¬ _setcolor),
- ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ ó »á½¿ΓαÑ ¿º ¿¼ÑεΘ¿σß∩ µóÑΓ«ó. é ßΓá¡ñáαΓ¡«⌐ ΓѬßΓ«ó«⌐
- »á½¿ΓαÑ ¿¡ñÑ¬ß 1 ß««ΓóÑΓßΓóπÑΓ "ú«½πí«¼π". Åα¿ »ÑαѡạáτÑ¡¿¿ »á½¿Γαδ
- »«α∩ñ«¬ µóÑΓ«ó ó »á½¿ΓαÑ ¼Ñ¡∩ÑΓß∩. é αѺπ½∞ΓáΓÑ, µóÑΓ, »«½πτÑ¡¡δ⌐ »«
- ñá¡¡«¼π º¡áτÑ¡¿ε »¿¬ßѽá, Γá¬ªÑ ¿º¼Ñ¡¿Γß∩. 諽¿τÑßΓó« µóÑΓ«ó ó Γáí½¿µÑ
- ºáó¿ß¿Γ «Γ ¬«½¿τÑßΓóá µóÑΓ«ó, »«ññÑনóáѼδσ ΓѬπΘ¿¼ ó¿ñÑ«-αѪ¿¼«¼.
-
- öπ¡¬µ¿¿ _remappalette ¿ _remapallpalette αáí«ΓáεΓ ó« óßÑσ αѪá¼áσ,
- ¡« Γ«½∞¬« ¡á «í«απñ«óá¡¿¿ EGA ¿½¿ VGA. àß½¿ óδ ßñѽáÑΓÑ »«»δΓ¬π
- »Ñαѡạáτ¿Γ∞ »á½¿Γαπ íѺ «í«απñ«óá¡¿∩ EGA ¿½¿ VGA, Σπ¡¬µ¿¿
-
- _remappalette ¿ _remapallpalette ñáñπΓ ßí«⌐ ¿ ó«ºóαáΓ∩Γ º¡áτÑ¡¿Ñ -1.
-
- Ä»¿ßδóáεΘ¿Ñ ¬«¡ßΓá¡Γδ ñ½∩ ßΓá¡ñáαΓ¡δσ ¡«¼Ñα«ó µóÑΓ«ó ºáñáεΓß∩ Γᬿ¼
- «íαẫ¼, τΓ« »ÑαѡạáτÑ¡¿Ñ µóÑΓ«ó ñ½∩ VGA ß«ó¼ÑßΓ¿¼« ß αѪ¿¼á¼¿ EGA.
- ê¼Ñ¡á ñá¡¡δσ ¬«¡ßΓá¡Γ ßἫñ«¬π¼Ñ¡Γ¿απѼδ. ìá»α¿¼Ñα, ¡«¼Ñαá µóÑΓ«ó ñ½∩
- τÑα¡«ú«, ¬αáß¡«ú« ¿ ßóÑΓ½«-ªÑ½Γ«ú« µóÑΓ«ó ºáñáεΓß∩ «íΩ∩ó½∩εΘ¿¼¿
- ¬«¡ßΓá¡ΓἿ _BLACK, _RED, _LIGHTYELLOW.
-
- éßÑ αѪ¿¼δ VGA ñÑ⌐ßΓóπεΓ ß ½εíδ¼ ó¿ñÑ«-¼«¡¿Γ«α«¼ VGA. Åα¿
- »«ñß«Ññ¿¡Ñ¡¡«¼ ¼«¡«σα«¼¡«¼ ¼«¡¿Γ«αÑ óßÑ µóÑΓá óδßóÑτ¿óáεΓß∩, ¬á¬ «ΓΓÑ¡¬¿
- ßÑα«ú«.
-
- -Åα¿¼Ñα: ÅÑαѡạáτÑ¡¿Ñ µóÑΓ¡δσ »á½¿Γα VGA.
- long colors1 [16] = {_BLACK, _BLUE, _GREEN, _RED, _RED, _MAGENTA,
- _BROWN, _WHITE, _GRAY, _LIGHTBLUE, _LIGHTGREEN, _LIGHTRED,
- _LIGHTRED, _LIGHTMAGENTA, _LIGHTYELLOW, _BRIGHWHITE};
-
- Åα¿óÑñÑ¡¡δ⌐ óδΦÑ ¼áßß¿ó ¡«¼Ñα«ó µóÑΓ«ó »ÑαѡạáτáÑΓ ßΓá¡ñáαΓ¡πε
- »á½¿Γαπ VGA Γᬿ¼ «íαẫ¼, τΓ« ó¼ÑßΓ« µóÑΓ«ó ºÑ½Ñ¡«óáΓ«-ú«½πí«ú« ¿
- ßóÑΓ½«-ºÑ½Ñ¡«óáΓ«-ú«½πí«ú« íπñπΓ óδßóÑτ¿óáΓ∞ß∩ ¬αáß¡δ⌐ ¿ ßóÑΓ½«-¬αáß¡δ⌐.
-
-
- 4.8. Å«¡∩Γ¿Ñ « ¬««αñ¿¡áΓ¡«⌐ ß¿ßΓѼÑ.
-
- "è««αñ¿¡áΓ¡á∩ ß¿ßΓѼá" ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ ¼ÑßΓ«»«½«ªÑ¡¿∩
- »¿¬ßÑ½á «Γ¡«ß¿Γѽ∞¡« ú«α¿º«¡Γá½∞¡«⌐ ¿ óÑαΓ¿¬á½∞¡«⌐ «ßÑ⌐. é úαáΣ¿τÑ߬«¼
- αѪ¿¼Ñ ¬áªñδ⌐ »¿¬ßѽ ¡á φ¬αá¡Ñ ¼«ªÑΓ íδΓ∞ «í«º¡áτÑ¡ »«ßαÑñßΓó«¼
- π¡¿¬á½∞¡«⌐ »áαδ ¬««αñ¿¡áΓ. âαáΣ¿τÑ߬á∩ í¿í½¿«ΓѬá Σπ¡¬µ¿⌐ »«ññÑনóáÑΓ
- ñóÑ ¬««αñ¿¡áΓ¡δÑ ß¿ßΓѼδ: Σ¿º¿τÑ߬πε ¿ ½«ú¿τÑ߬πε.
-
-
- -ö¿º¿τÑ߬¿Ñ ¬««αñ¿¡áΓδ.
-
- "ö¿º¿τÑ߬á∩ ¬««αñ¿¡áΓ¡á∩ ß¿ßΓѼá" »«¼ÑΘáÑΓ ¡áτὫ «ΓßτÑΓá (¿½¿
- ¬««αñ¿¡áΓ¡πε »áαπ 0,0) ó óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ φ¬αá¡á. É«ßΓ »«½«ª¿Γѽ∞¡«ú«
- º¡áτÑ¡¿∩ ¬««αñ¿¡áΓδ ò »α«¿ßσ«ñ¿Γ ß½Ñóá ¡á»αáó«. É«ßΓ »«½«ª¿Γѽ∞¡«ú«
- º¡áτÑ¡¿∩ ¬««αñ¿¡áΓδ ô »α«¿ßσ«ñ¿Γ ßóÑασπ 󡿺. Æá¬¿¼ «íαẫ¼, »αáóδ⌐
- ¡¿ª¡¿⌐ πú«½ φ¬αá¡á ¿¼ÑÑΓ ¬««αñ¿¡áΓπ ò, αáó¡πε ¼á¬ß¿¼á½∞¡«¼π ¬«½¿τÑßΓóπ
- »¿¬ßѽ«ó »« «ß¿ ò, »«ññÑনóáѼ«¼π ñá¡¡δ¼ ó¿ñÑ«-αѪ¿¼«¼. ǡὫú¿τ¡«,
- ¡¿ª¡¿⌐ »αáóδ⌐ πú«½ φ¬αá¡á ¿¼ÑÑΓ ¬««αñ¿¡áΓπ ô, αáó¡πε ¼á¬ß¿¼á½∞¡«¼π
- ¬«½¿τÑßΓóπ »¿¬ßѽ«ó »« «ß¿ ô ó ñá¡¡«¼ ó¿ñÑ«-αѪ¿¼Ñ.
-
- ö¿º¿τÑ߬á∩ ¬««αñ¿¡áΓ¡á∩ ß¿ßΓѼá ß«ñÑαª¿Γ Γ«½∞¬« »«½«ª¿Γѽ∞¡δÑ
- º¡áτÑ¡¿∩: ò «Γ 0 ( ó óÑασ¡Ñ¼ ½Ñó«¼ πú½π) ñ« ¬«½¿τÑßΓóá »¿¬ßѽ«ó »« «ß¿ ò
- (»αáóá∩ úαá¡¿µá); ô «Γ 0 (óÑασ¡¿⌐ ½Ñóδ⌐ πú«½) ñ« ¬«½¿τÑßΓóá »¿¬ßѽ«ó »«
- «ß¿ ô (¡¿º φ¬αá¡á).
-
- ö¿º¿τÑ߬á∩ ¬««αñ¿¡áΓ¡á∩ ß¿ßΓÑ¼á ºáó¿ß¿Γ «Γ «í«απñ«óá¡¿∩ ¿
- ¬«¡Σ¿úπαᵿ¿ ¿º«íαáªÑ¡¿∩ ¿ ¡Ñ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡á.
-
- -ï«ú¿τÑ߬¿Ñ ¬««αñ¿¡áΓδ.
-
- "ï«ú¿τÑ߬á∩ ¬««αñ¿¡áΓ¡á∩ ß¿ßΓѼá" ß«ºñáÑΓß∩ »ÑαѼÑΘÑ¡¿Ñ¼ ¡áτá½á
- ¬««αñ¿¡áΓ ó í«½ÑÑ "½«ú¿τÑ߬πε" »«º¿µ¿ε «Γ¡«ß¿Γѽ∞¡« áíß«½εΓ¡δσ
- Σ¿º¿τÑ߬¿σ ¬««αñ¿¡áΓ. Ä¡á «»αÑñѽ∩ÑΓß∩ Σπ¡¬µ¿Ñ⌐ _setlogorg, ¬«Γ«αá∩
- πßΓá¡áó½¿óáÑΓ ¡«ó«Ñ ½«ú¿τÑ߬«Ñ ¡áτὫ ¬««αñ¿¡áΓ. ÅÑαó«¡áτá½∞¡«,
- ½«ú¿τÑ߬á∩ ¬««αñ¿¡áΓ¡á∩ ß¿ßΓÑ¼á ¿ñÑ¡Γ¿τ¡á Σ¿º¿τÑ߬«⌐ ¬««αñ¿¡áΓ¡«⌐
- ß¿ßΓѼÑ.
-
- Å«ß½Ñ »ÑαÑ¡ÑßÑ¡¿∩ ¡áτá½á ¬««αñ¿¡áΓ, ¬««αñ¿¡áΓδ ò ¿ ô »α¿ñÑনóáεΓß∩
- ñá¡¡«⌐ «α¿Ñ¡Γᵿ¿. Åα¿ πóѽ¿τÑ¡¿¿ ò »«º¿µ¿∩ »¿¬ßÑ½á »ÑαѼÑΘáÑΓß∩ »«
- φ¬αá¡π ß½Ñóá ¡á»αáó«; »α¿ πóѽ¿τÑ¡¿¿ ô, »«º¿µ¿∩ »¿¬ßÑ½á »ÑαѼÑΘáÑΓß∩ «Γ
- óÑασ¡Ñ⌐ úαá¡¿µδ ¬ ¡¿ª¡Ñ⌐ úαá¡¿µÑ φ¬αá¡á.
-
- -ÅÑαѼÑΘÑ¡¿Ñ ¡áτá½á ¬««αñ¿¡áΓ.
-
- æÑú¼Ñ¡Γ »α«úαá¼¼δ, »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ, »ÑαѼÑΘáÑΓ ¡áτὫ ¬««αñ¿¡áΓ ó
- µÑ¡Γα φ¬αá¡á:
-
- _getvideoconfig (&vc);
- _setlogorg (vc.numxpixels/2-1, vc.numypixels/2-1);
-
- é맮ó Σπ¡¬µ¿¿ _getvideoconfig »«¼ÑΘáÑΓ ¿¡Σ«α¼áµ¿ε ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿
- ó »ÑαѼѡ¡πε-ßΓαπ¬Γπαπ vc. æΓαπ¬Γπαá ¬«¡Σ¿úπαᵿ¿ ß«ñÑαª¿Γ ñá¡¡δÑ «
- αẼÑαÑ φ¬αá¡á. ¥Γ« ¿ß»«½∞ºπÑΓß∩ (»«ß½Ñ ß««ΓóÑΓßΓóπεΘÑú« ñѽѡ¿∩) ñ½∩
- »ÑαѼÑΘÑ¡¿∩ ¡áτá½á ¬««αñ¿¡áΓ ó µÑ¡Γα φ¬αá¡á.
-
- -髺óαáΓ ¬ Σ¿º¿τÑ߬¿¼ ¬««αñ¿¡áΓá¼.
-
- 髺óαáΓ «Γ ½«ú¿τÑ߬¿σ ¬««αñ¿¡áΓ ¬ Σ¿º¿τÑ߬¿¼ »α«¿ºó«ñ¿Γß∩ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ _setlogorg (Γ« ÑßΓ∞ »ÑαѼÑΘÑ¡¿Ñ ¡áτá½á ¬««αñ¿¡áΓ ß¡«óá ó ½Ñóδ⌐
- óÑασ¡¿⌐ πú«½ φ¬αá¡á). ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα ó«ºóαáΓá ¬ Σ¿º¿τÑ߬¿¼
- ¬««αñ¿¡áΓá¼:
-
- setlogorg (0,0);
-
- -ÅαÑ«íαẫóá¡¿Ñ ¬««αñ¿¡áΓ «Γ «ñ¡«⌐ ¬««αñ¿¡áΓ¡«⌐ ß¿ßΓÑ¼δ ¬ ñαπú«⌐.
-
- ä½∩ »αÑ«íαẫóá¡¿∩ Σ¿º¿τÑ߬¿σ ¬««αñ¿¡áΓ ó ½«ú¿τÑ߬¿Ñ ¿ß»«½∞ºπÑΓß∩
- Σπ¡¬µ¿∩ _getlogcoord. ï«ú¿τÑ߬¿Ñ ¬««αñ¿¡áΓδ »«¼ÑΘáεΓß∩ ó ßΓαπ¬Γπαπ
- xycoord. ä½∩ »αÑ«íαẫóá¡¿∩ ½«ú¿τÑ߬¿σ ¬««αñ¿¡áΓ ºáñá¡¡«ú« »¿¬ßѽá ó
- Σ¿º¿τÑ߬¿Ñ ¬««αñ¿¡áΓδ ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ _getphyscoord. ö¿º¿τÑ߬¿Ñ
- ¬««αñ¿¡áΓδ »«¼ÑΘáεΓß∩ ó ßΓαπ¬Γπαπ xycoord. ö«α¼áΓ ñóπσ ñá¡¡δσ «»¿ßá¡
- ¡¿ªÑ:
-
- _getlogcoord (x,y);
- _getphyscoord (x,y);
- _getvideoconfig (&vc); /* »«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ ó¿ñÑ«-¬«¡Σ¿úπαᵿ¿ */
- x = vc.numxpixels/2 - 1; /* «»αÑñѽѡ¿Ñ ò ¿ ô ßαÑñ¡¿σ Γ«τѬ */
- y = vc.numypixels/2 -1;
- _setlogorg (x,y); /* »ÑαѼÑΘÑ¡¿Ñ ¡áτá½á ¬««αñ¿¡áΓ */
-
- äá¡¡δ⌐ Σαáú¼Ñ¡Γ »α«úαá¼¼δ ¡áσ«ñ¿Γ µÑ¡Γα φ¬αá¡á ñ½∩ ½εí«ú«
- ó¿ñÑ«-αѪ¿¼á ¿ πßΓá¡áó½¿óáÑΓ ó ¡Ñ¼ ¡áτὫ ¬««αñ¿¡áΓ.
-
-
- 4.9. ÉẼÑΘÑ¡¿Ñ «Γñѽ∞¡δσ Γ«τѬ.
-
- Åα«ßΓÑ⌐Φ¿Ñ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿ ñÑ⌐ßΓóπεΓ ¡á «ñ¡«Γ«τÑτ¡«¼ πα«ó¡Ñ.
- ä«ßΓπ»Ñ¡ ½εí«⌐ »¿¬ßѽ φ¬αá¡á, ó ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ πßΓá¡«ó½Ñ¡á Γ«τ¬á.
-
- -ÅÑαѼÑΘÑ¡¿Ñ ¡á ºáñá¡¡πε Γ«τ¬π φ¬αá¡á.
-
- ÆÑ¬πΘπε úαáΣ¿τÑ߬πε »«º¿µ¿ε ¼«ª¡« ¿º¼Ñ¡¿Γ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- _moveto. äá¡¡á∩ Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ ΓѬπΘπε »«º¿µ¿ε (Γ« ÑßΓ∞ Γπ, ¡á
- ¬«Γ«α«⌐ ºá¬«¡τ¿½áß∞ »αÑñδñπΘá∩ «»Ñαᵿ∩) ó ºáñá¡¡δÑ ½«ú¿τÑ߬¿Ñ
- ¬««αñ¿¡áΓδ. ö«α¼áΓ ñá¡¡«⌐ Σπ¡¬µ¿¿ ß½ÑñπεΘ¿⌐:
-
- _moveto (10,10); /* ßñó¿ú ¡á 10 »¿¬ßѽ«ó ó»αáó« ¿ ¡á 10 »¿¬ßѽ«ó
- 󡿺 «Γ ½«ú¿τÑ߬«ú« ¡áτá½á ¬««αñ¿¡áΓ */
-
- -ôßΓá¡«ó¬á ¿ «τ¿ßΓ¬á »¿¬ßѽ«ó.
-
- öπ¡¬µ¿∩ _setpixel ¿ß»«½∞ºπÑΓß∩ ñ½∩ πßΓá¡«ó¬¿ »¿¬ßѽá, αáß»«½«ªÑ¡¡«ú«
- »« ºáñá¡¡δ¼ ½«ú¿τÑ߬¿¼ ¬««αñ¿¡áΓá¼ ó ΓѬπΘ¿⌐ µóÑΓ. àÑ Σ«α¼áΓ ß½ÑñπεΘ¿⌐:
-
- _setpixel (10,10); /* πßΓá¡«ó¬á »¿¬ßÑ½á »« ¬««αñ¿¡áΓá¼ 10, 10 ó
- ΓѬπΘ¿⌐ µóÑΓ */
-
-
- é䬽ετÑ¡¿Ñ »¿¬ßÑ½á »α«¿ºó«ñ¿Γß∩ »πΓѼ πßΓá¡«ó¬¿ Ñú« ó µóÑΓ Σ«¡á
- (¬«Γ«αδ⌐ ¿¼ÑÑΓ óßÑúñá º¡áτÑ¡¿Ñ »¿¬ßѽá 0). ì¿ªÑ »α¿óÑñÑ¡á
- »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ¬«¼á¡ñ, ¡Ñ«íσ«ñ¿¼á∩ ñ½∩ «τ¿ßΓ¬¿ ºáñá¡¡«ú« »¿¬ßѽá:
-
- _setcolor (0); /* πßΓá¡«ó¬á ΓѬπΘÑú« µóÑΓá ó µóÑΓ Σ«¡á */
- _setpixel (x,y); /* «τ¿ßΓ¬á »¿¬ßѽá */
-
- -Åα¿¼Ñα: ôßΓá¡«ó¬á »¿¬ßѽ«ó. Åα«úαá¼¼á hyppix.c, »α¿óÑñÑ¡¡á∩ ¡¿ªÑ,
- óδτÑατ¿óáÑΓ ú¿»«µ¿¬½«¿ñ- -Σ¿úπαπ, »«½πτÑ¡¡πε óαáΘÑ¡¿Ñ¼ «ñ¡«ú« ¬απúá
- ó¡πΓα¿ ñαπú«ú«. Å«ñ¬½ετáÑΓß∩ í¿í½¿«ΓѬá math.h (¼áΓѼáΓ¿τÑ߬¿σ Σπ¡¬µ¿⌐),
- »«ß¬«½∞¬π »«ΓαÑíπεΓß∩ Σπ¡¬µ¿¿ ß¿¡πß ¿ ¬«ß¿¡πß. êß»«½∞ºπÑΓß∩ ó¿ñÑ«-αѪ¿¼,
- ß«ó¼ÑßΓ¿¼δ⌐ ß CGA. èα¿óá∩ óδτÑατ¿óáÑΓß∩ ó« óαѼδ αáí«Γδ µ¿¬½á while,
- ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ »αÑαóá¡ ¡áªáΓ¿Ñ¼ Σπ¡¬µ¿∞¡á½∞¡«ú« ¬½ετá. ä½∩ Γ«ú«,
- τΓ«íδ »«½πτ¿Γ∞ í«½ÑÑ ¿¡ΓÑαÑß¡δÑ α¿ßπ¡¬¿, ºáñá⌐ΓÑ circle ratio í«½∞Φ¿¼,
- τѼ pen position ¿ ¡Ñ ¿ß»«½∞ºπ⌐ΓÑ τ¿ßΓ« µÑ½δσ º¡áτÑ¡¿⌐. ìá¿í«½ÑÑ
- ¿¡ΓÑαÑß¡δ⌐ α¿ßπ¡«¬ »«½πτáÑΓß∩ »α¿ circle ratio, αáó¡«¼ 3.2 ¿ ren
- position, αáó¡«¼ 1.6. (ü«½ÑÑ »«ñα«í¡πε ¿¡Σ«α¼áµ¿ε « ú¿»«µ¿¬½«¿ñáσ ¿
- ñαπú¿σ µ¿¬½«¿ñáσ ¼«ª¡« ¡á⌐Γ¿ ó ªπα¡á½Ñ "Byte", May, 1987 ó ßΓáΓ∞Ñ
- "îáΓѼáΓ¿τÑ߬¿Ñ »«ßΓα«Ñ¡¿∩").
-
- /* hyppix.c-»«ßΓα«Ñ¡¿Ñ ú¿»«µ¿¬½«ñá-Γ«τÑτ¡«Ñ */
- #include <stdio.h>
- #include <graph.h>
- #include <mach.h>
- #include <conio.h>
- struct videoconfig vc;
- char error_message [] = "This video mode is not supported";
- main()
- {
- if (_setvideomode(_MRES4COLOR) == 0) {
-
-
- printf ("%s\n", error_message);
- exit(0);
- }
- _getvideoconfig (&vc);
- hypcycle(); /* ó맮ó Σπ¡¬µ¿¿ α¿ß«óá¡¿∩ */
- _clearscreen(_GCLEARSCREEN);
- _setvideomode (_DEFAULTMODE); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ó¿ñÑ«-αѪ¿¼á */
- }
- hypcycle()
- {
- float pi=3.14159; /* «íΩ∩ó½Ñ¡¿Ñ ¿ ¿¡µ¿á½¿ºáµ¿∩ */
- float a,h,b,r,x0,y0,x,y, ang;
- int i;
- x0 = vc.numxpixels/2 -1;
- y0 = vc.numypixels/2 -1;
- printf ("circle ratio (>=1): ");
- schanf ("%f", &r);
- printf ("\npen position (>1): ");
- scanf ("%f",&h);
- _clearscreen(_GCLEARSCREEN);
- _setcolor (1);
- _moveto (x0,0); /* óδτÑατ¿óá¡¿Ñ «ßÑ⌐ */
- _lineto (x0,vc.numypixels);
- _moveto (0,y0);
- _lineto (vc.numxpixels,y0);
- a = 0.5*r*vc.numypixels/(r+h-1);
- b = a/r;
- h = h*b;
- _setcolor (2);
- ang = 0;
-
-
- while (!kbhit()) { /* óδτÑατ¿óá¡¿Ñ ú¿»«µ¿¬½«¿ñá */
- for (i=1; i<= 20; i++) {
- ang = ang + 2*pi/100;
- x = x0+(a-b)*cls(ang)+cos(ang*(a-b)/b);
- y = y0-(a-b)*sin(ang)+h*sin(ang*(a-b)/b);
- setpixel (x,y);
- }
- }
- }
-
-
- 4.10. ɿ߫óá¡¿Ñ ½¿¡¿⌐.
-
- ä½∩ α¿ß«óá¡¿∩ ½¿¡¿⌐ ¼Ñªñπ ñóπ¼∩ Γ«τ¬á¼¿ ¿ß»«½∞ºπεΓß∩ Σπ¡¬µ¿∩ _moveto
- ¿ _lineto. ï¿¡¿∩ ¼«ªÑΓ íδΓ∞ óδτÑατÑ¡á ½¿í« »½«Γ¡« (¡Ñ»αÑαδó¡«), ½¿í« »«
- «íαẵπ .
-
- -ÅÑαѼÑΘÑ¡¿Ñ ó ºáñá¡¡πε »«º¿µ¿ε.
-
- ä½∩ »ÑαѼÑΘÑ¡¿∩ ó ºáñá¡¡πε ½«ú¿τÑ߬¿¼¿ ¬««αñ¿¡áΓἿ (»áα«⌐ τ¿ßѽ)
- Γ«τ¬π ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ _moveto. ö«α¼áΓ «»ÑαáΓ«αá _moveto ß½ÑñπεΘ¿⌐:
-
- _moveto (25,25); /* »ÑαѼÑΘÑ¡¿Ñ ó Γ«τ¬π ß ½«ú¿τÑ߬¿¼¿ ¬««αñ¿¡áΓἿ 25,25
- */
-
- -éδτÑατ¿óá¡¿Ñ ½¿¡¿⌐.
-
- ä½∩ Γ«ú«, τΓ«íδ »α«τÑαΓ¿Γ∞ ½¿¡¿ε «Γ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá ñ«
- ºáñá¡¡«⌐ ó Σπ¡¬µ¿¿ ¬«¡Ñτ¡«⌐ Γ«τ¬¿, ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ _lineto. àß½¿
- ½¿¡¿∩ íδ½á πß»ÑΦ¡« óδτÑατÑ¡á, ΓѬπΘá∩ »«º¿µ¿∩ ¬παß«αá »ÑαѼÑΘáÑΓß∩ ¡á
- ¬««αñ¿¡áΓδ, π¬áºá¡¡δÑ ó Σπ¡¬µ¿¿ _lineto . êß»«½∞ºπѼδ⌐ µóÑΓ ∩ó½∩ÑΓß∩
- ΓѬπΘ¿¼. Å«ß½Ñ óδ»«½¡Ñ¡¿Ñ «»¿ßá¡¡«⌐ óδΦÑ Σπ¡¬µ¿¿ _moveto(25,25),
- »α¿óÑñÑ¡¡á∩ ¡¿ªÑ Σπ¡¬µ¿∩ lineto óδτÑαΓ¿Γ ½¿¡¿ε «Γ Γ«τ¬¿ ß ¬««αñ¿¡áΓἿ
- (25,25) ñ« Γ«τ¬¿ (100,100), »α¿τѼ ¬παß«α πßΓá¡«ó¿Γß∩ ó Γ«τ¬Ñ (100,100):
-
- _lineto (100,100); /* óδτÑατ¿óá¡¿Ñ ½¿¡¿¿ «Γ ΓѬπΘÑ⌐ »«º¿µ¿¿ ñ« Γ«τ¬¿
- (100,100) */
-
- -éδτÑατ¿óá¡¿Ñ »π¡¬Γ¿α¡δσ ½¿¡¿⌐ ½¿í« ½¿¡¿⌐ «»αÑñѽѡ¡«ú« «íαẵá.
-
- ɿ߫ó᡿Ѽ ½¿¡¿¿ π»αáó½∩ÑΓ ¼á߬á ßΓ¿½∩. îá߬á-φΓ« ¿ß»«½∞ºπѼδ⌐ ñ½∩
- α¿ß«óá¡¿∩ 16-αáºα∩ñ¡δ⌐ Φáí½«¡. èáªñδ⌐ αáºα∩ñ ó ¼á᪥ «»αÑñѽ∩ÑΓ »¿¬ßѽ ó
- ½¿¡¿¿. àß½¿ αáºα∩ñ ß«ñÑαª¿Γ 1, ß««ΓóÑΓßΓóπεΘ¿⌐ »¿¬ßѽ «¬αáΦ¿óáÑΓß∩ ó
- ΓѬπΘ¿⌐ µóÑΓ. àß½¿ αáºα∩ñ ß«ñÑαª¿Γ 0-»¿¬ßѽ πßΓá¡áó½¿óáÑΓß∩ ó Σ«¡«óδ⌐
- µóÑΓ. æΓá¡ñáαΓ¡á∩ ¼á߬á-φΓ« ¡Ñ»αÑαδó¡á∩ »½«Γ¡á∩ ½¿¡¿∩ (0σFFFF).
-
- öπ¡¬µ¿∩ _setlinestyle πßΓá¡áó½¿óáÑΓ ßΓ¿½∞, ó ¬«Γ«α«¼ óδτÑατ¿óáεΓ
- ½¿¡¿¿ Σπ¡¬µ¿¿ _lineto ¿ _rectangle.
-
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα ¿º¼Ñ¡∩ÑΓ ßΓ¿½∞ ½¿¡¿¿ ¡á »π¡¬Γ¿α¡δ⌐: _setlinestyle
- (0xAAAA); /* ßΓ¿½∞ »« Φáí½«¡π 1010101010101010 */
-
- -Åα¿¼Ñα: éδτÑατ¿óá¡¿Ñ ½¿¡¿⌐.
- #include <stdio.h>
- #include <graph.h>
- #include <conio.h>
- struct videoconfig vc;
- char error_message [] = "This video mode is not supported";
- main()
- {
- if (_setvideomode(_MRES4COLOR) == 0) {
- printf ("%s\n", error message);
- exit(0);
- }
-
-
- _getvideoconfig (&vc);
- _setlinestyle (0x0001);
- _moveto (0,0); /* óδτÑατ¿óá¡¿Ñ Σ¿úπαδ */
- _lineto (0,150);
- _setlinestyle (0x0bb0);
- _lineto (150,150);
- _setlinestyle (0x0ff0);
- _lineto (150,0);
- _setlinestyle (0xffff);
- _lineto (0,0);
- getchar(); /* «ª¿ñá¡¿Ñ ó«ºóαáΓá */
- _clearscreen( GCLEARSCREEN); /* «τ¿ßΓ¬á ß«ñÑন¼«ú« φ¬αá¡á */
- _setvideomode ( DEFAULTMODE); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ó¿ñÑ«-αѪ¿¼á */
- }
-
- Åα¿óÑñÑ¡¡á∩ óδΦÑ »α«úαá¼¼á óδτÑατ¿óáÑΓ »α∩¼«πú«½∞¡¿¬, »α¿τѼ ¬áªñπε
- ßΓ«α«¡π ó αạ«¼ ßΓ¿½Ñ.
-
-
- 4.11. Ä»¿ßá¡¿Ñ úαáΣ¿τÑ߬¿σ «íΩÑ¬Γ«ó.
-
- äá¡¡δ⌐ αáºñѽ ñáÑΓ «ß¡«ó«»«½áúáεΘ¿Ñ ¬«¡µÑ»µ¿¿, ¿ß»«½∞ºπѼδÑ »α¿
- «»¿ßá¡¿¿ úαáΣ¿τÑ߬¿σ «íΩÑ¬Γ«ó.
-
- -Äúαá¡¿τ¿óáεΘ¿⌐ »α∩¼«πú«½∞¡¿¬.
-
- Äúαá¡¿τ¿óáεΘ¿⌐ »α∩¼«πú«½∞¡¿¬ «»αÑñѽ∩ÑΓ ¼ÑßΓ«, ó ¬«Γ«α«¼ íπñÑΓ
- αáß»«½«ªÑ¡á ¬απú«óá∩ Σ¿úπαá, »α¿τѼ µÑ¡Γα »α∩¼«πú«½∞¡¿¬á «»αÑñѽ∩ÑΓ
- µÑ¡Γα ¬απú«ó«⌐ Σ¿úπαδ. äαπú¿¼¿ ß½«óἿ, φΓ« »½«Θáñ∞, ºá»«½¡∩Ѽá∩ ¬απú½δ¼
- «íΩÑ¬Γ«¼. Äúαá¡¿τ¿óáεΘ¿⌐ »α∩¼«πú«½∞¡¿¬ ºáñáÑΓß∩ ¬««αñ¿¡áΓἿ óÑασ¡Ñú«
- ½Ñó«ú« πú½á ¿ »αáó«ú« ¡¿ª¡Ñú« πú½á ñá¡¡«ú« »α∩¼«πú«½∞¡¿¬á. äóá ñαπú¿σ
- πú½á »«ñαáºπ¼ÑóáεΓß∩.
-
- -âαá¡¿µá.
-
- âαá¡¿µá ¬απú«ó«ú« «íΩѬΓá óδτÑατ¿óáÑΓß∩ ó ΓѬπΘѼ µóÑΓÑ ¿
- ¡Ñ»αÑαδó¡«⌐ ½¿¡¿Ñ⌐. âαá¡¿µá »α∩¼«πú«½∞¡«ú« «íΩѬΓá óδτÑατ¿óáÑΓß∩ ó
- ΓѬπΘѼ µóÑΓÑ ¿ ó ½εí«¼ ßΓ¿½Ñ, ºáñá¡¡«¼ Σπ¡¬µ¿Ñ⌐ _setlinestyle. àß½¿ ñ½∩
- óδτÑατ¿óá¡¿∩ úαá¡¿µδ ¡Ñ ºáñá¡« Φáí½«¡á, ¿ß»«½∞ºπÑΓß∩ ßΓá¡ñáαΓ¡δ⌐ Φáí½«¡
- (0xFFFF).
-
- -ö½áª«¬ ºá»«½¡Ñ¡¿∩.
-
- ö½áª«¬ ºá»«½¡Ñ¡¿∩ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «»αÑñѽѡ¿∩ Γ«ú«, íπñÑΓ ½¿ Σ¿úπαá
- ºá»«½¡∩Γ∞ß∩ »« ΓѬπΘÑ⌐ ¼á᪥ ºá»«½¡Ñ¡¿∩ ¿½¿ «ßΓá¡ÑΓß∩ »πßΓ«⌐. è«¡ßΓá¡Γá
- _GFILLINTERIOR «»αÑñѽ∩ÑΓ, ¬á¬¿¼ «íαẫ¼ íπñÑΓ ºá»«½¡∩Γ∞ß∩ «íΩѬΓ, á
- ¬«¡ßΓá¡Γá _GBORDER «»αÑñѽ∩ÑΓ, τΓ« íπñÑΓ óδτÑατ¿óáΓ∞ß∩ Γ«½∞¬« úαá¡¿µá.
-
- -éÑ¬Γ«α ¡áτá½á ¿ ¬«¡µá.
-
- äπúá ¿½¿ ßÑ¬Γ«α ¡áτ¿¡áεΓß∩ ó Γ«τ¬Ñ, úñÑ «úαá¡¿τ¿óáεΘ¿⌐ »α∩¼«πú«½∞¡¿¬
- »ÑαÑßѬáÑΓß∩ ß« ßΓáαΓ«óδ¼ óÑ¬Γ«α«¼ ¿ ºá¬á¡τ¿óáÑΓß∩ Γá¼, úñÑ «¡
- »ÑαÑßѬáÑΓß∩ ß ºá¬á¡τ¿óáεΘ¿¼ óÑ¬Γ«α«¼.
-
- -è«φΣΣ¿µ¿Ñ¡Γ ¿º«íαáªÑ¡¿∩.
-
- è«φΣΣ¿µ¿Ñ¡Γ ¿º«íαáªÑ¡¿∩-φΓ« ¬«½¿τÑßΓó« »¿¬ßѽ«ó ¡á óÑαΓ¿¬á½∞¡«⌐
- ½¿¡¿¿, αáºñѽѡ¡«Ñ ¡á ¬«½¿τÑßΓó« »¿¬ßѽ«ó »« ú«α¿º«¡Γá½∞¡«⌐ ½¿¡¿¿. ùΓ«íδ
- óδτÑαΓ¿Γ∞ ¬óáñαáΓ ¿½¿ «¬απª¡«ßΓ∞, óá¼ ß½ÑñπÑΓ ß«¿º¼Ñα∩Γ∞ ¿σ αẼÑαδ ß
- ¬«φΣΣ¿µ¿Ñ¡Γ«¼ ¿º«íαáªÑ¡¿∩.
-
- è«φΣΣ¿µ¿Ñ¡Γ ¿º«íαáªÑ¡¿∩ ºáó¿ß¿Γ «Γ ñóπσ Σá¬Γ«α«ó:
-
- 1. â«α¿º«¡Γá½∞¡á∩ ßΓα«¬á ¿¼ÑÑΓ í«½∞ΦÑ »¿¬ßѽ«ó, τѼ óÑαΓ¿¬á½∞¡á∩
- ¬«½«¡¬á Γ«⌐ ªÑ ßἫ⌐ Σ¿º¿τÑ߬«⌐ ñ½¿¡δ-ó« óßÑσ αѪ¿¼áσ φ¬αá ¡á, »«ß¬«½∞¬π
- ¡á ú«α¿º«¡Γá½∞¡«⌐ ½¿¡¿¿ αáßßΓ«∩¡¿Ñ ¼Ñªñπ Γ«τ¬á¼¿ ¼Ñ¡∞ΦÑ.
-
- 2. ¥¬αá¡ ó¿ñÑ«-ñ¿ß»½Ñ∩ Φ¿αÑ, τѼ Ñú« óδß«Γá, «íδτ¡« ß ¬«φΣΣ¿µ¿Ñ¡Γ«¼
- 4:3.
-
-
- -éδτ¿ß½Ñ¡¿Ñ ¬«φΣΣ¿µ¿Ñ¡Γá ¿º«íαáªÑ¡¿∩.
-
- è«φΣΣ¿µ¿Ñ¡Γ ¿º«íαáªÑ¡¿∩ ñ½∩ ñá¡¡«ú« ó¿ñÑ«-αѪ¿¼á óδτ¿ß½∩ÑΓß∩ »«
- ß½ÑñπεΘÑ⌐ Σ«α¼π½Ñ:
-
- ¬«φΣ.¿º«íα.=(Φ¿α¿¡á φ¬αá¡á/óδß«Γá φ¬αá¡á)*(π-»¿¬ßѽ/σ-»¿¬ßѽ),
-
- úñÑ "Φ¿α¿¡á φ¬αá¡á" ¿ "óδß«Γá φ¬αá¡á"-φΓ« Σ¿º¿τÑ߬¿Ñ αẼÑαδ φ¬αá¡á,
- á "π-»¿¬ßѽ" ¿ "σ-»¿¬ßѽ"-φΓ« ΓѬπΘÑÑ αáºαÑΦÑ¡¿Ñ φ¬αá¡á (¿º¼Ñα∩ÑΓß∩ ó
- »¿¬ßѽáσ).
-
- -Åα¿¼Ñα: éδτÑατ¿óá¡¿Ñ Γ«τ¡« »α«»«αµ¿«¡á½∞¡δσ Σ¿úπα.
- #include <stdi.h>
- #include <math.h>
- #include <graph.h>
- struct videoconfig vc;
- char error_mesage [] = "this video mode is not supported";
- main()
- {
- float ar, x, y;
- if (_setvideomode(_MRES4COLOR == 0) {
- printf ("%s\n", error_message);
- exit(0);
- }
- _getvideoconfig (&vc);
- /* αẼÑαδ φ¬αá¡á 10*6.6 ñε⌐¼«ó */
- ar = (float) (10 * vc.numypixels) / (6.5 * vc.numhpixels);
- y = 100*ar;
- x = 100;
- _setlogorg (vc.numxpixels/2 - 1, vc.numypixels/2 - 1);
- _setcolor (1);
- _rectangle (_GFILIINTERIOR, -x, -y, x, y);
- _setcolor (3);
-
-
- _ellipse (_GFILLINTERIOR, -x, -y, x, y);
- getchar();
- _clearscreen(_GCLEARSCREEN);
- _setvideomode (_DEFAULTMODE); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ó¿ñÑ«-αѪ¿¼á*/
- }
-
- äá¡¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ ¬«φΣΣ¿µ¿Ñ¡Γ ¿º«íαáªÑ¡¿∩, ñ½∩ Γ«τ¡«ú«
- óδτÑατ¿óá¡¿∩ ¬óáñαáΓá ¿ «¬απª¡«ßΓ¿.
-
- èαπú«óá∩ Σ¿úπαá «ßóÑΘáÑΓ »α¿¡µ¿» «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á.
-
-
- 4.12. éδτÑατ¿óá¡¿Ñ «ß¡«ó¡δσ Σ¿úπα.
-
- Äß¡«ó¡δÑ Σ¿úπαδ, ¿¼ÑεΘ¿Ñß∩ ó ßΓá¡ñáαΓ¡«⌐ í¿í½¿«ΓÑ¬Ñ »α«µÑñπα æê-φΓ«
- »α∩¼«πú«½∞¡¿¬, φ½½¿»ß, ñπúá ¿ ßÑ¬Γ«α.
-
- -éδτÑατ¿óá¡¿Ñ »α∩¼«πú«½∞¡¿¬«ó.
-
- ä½∩ ¿º«íαáªÑ¡¿∩ »α∩¼«πú«½∞¡¿¬«ó ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ rectangle.
- Çαúπ¼Ñ¡ΓἿ ñá¡¡«⌐ Σπ¡¬µ¿¿ ∩ó½∩εΓß∩ ¬««αñ¿¡áΓδ »α«Γ¿ó«»«½«ª¡δσ πú½«ó.
- ÄßΓá½∞¡δÑ πú½δ »«ñαáºπ¼ÑóáεΓß∩. Åáαá¼ÑΓα Σ½áª¬á ºá»«½¡Ñ¡¿∩ ¿ß»«½∞ºπÑΓß∩
- ñ½∩ Γ«ú«, τΓ«íδ «»αÑñѽ¿Γ∞, íπñÑΓ ½¿ »α∩¼«πú«½∞¡¿¬ «í«º¡áτÑ¡ Γ«½∞¬«
- úαá¡¿µá¼¿ ¿½¿ íπñÑΓ ºá»«½¡Ñ¡Γ ΓѬπΘ¿¼ µóÑΓ«¼. äóÑ ¬«¼á¡ñδ, »α¿óÑñÑ¡¡δÑ
- ¡¿ªÑ, óδτÑατ¿óáεΓ »α∩¼«πú«½∞¡¿¬ ó óÑασ¡¿⌐ ½Ñó«⌐ τáßΓ¿ φ¬αá¡á.
- Åα«Γ¿ó«»«½«ª¡δÑ πú½δ »α∩¼«πú«½∞¡¿¬á ºáñáεΓß∩ ¬««αñ¿¡áΓἿ: (0,0) ¿
- (25,25).
-
- _rectangle (_GBORDER,0,0,25,25); /* óδτÑατ¿óá¡¿Ñ Γ«½∞¬« úαá¡¿µ */
- _restangle (_GFILLINTERIOR,25,25,0,0); /* ºá¬αáΦ¿óá¡¿Ñ ó¡πΓαÑ¡¡«ß-
- Γ¿ */
-
- -éδτÑατ¿óá¡¿Ñ «¬απª¡«ßΓÑ⌐ ¿ φ½½¿»ß«ó.
-
- ä½∩ óδτÑατ¿óá¡¿∩ φ½½¿»ß«ó ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ _ellipse. Åáαá¼ÑΓαδ
- Σπ¡¬µ¿¿ «»αÑñѽ∩εΓ »α«Γ¿ó«»«½«ª¡δÑ πú½δ «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á.
- ûÑ¡Γα«¼ φ½½¿»ßá ∩ó½∩ÑΓß∩ µÑ¡Γα «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á. àß½¿
- «úαá¡¿τ¿óáεΘ¿⌐ »α∩¼«πú«½∞¡¿¬ ∩ó½∩ÑΓß∩ ¬óáñαáΓ«¼-φ½½¿»ß íπñÑΓ
- «¬απª¡«ßΓ∞ε. 쿪ѻα¿óÑñÑ¡¡δÑ ¬«¼á¡ñδ óδτÑατ¿óáεΓ ñóá φ½½¿»ßá ó óÑασ¡¿⌐
- ½Ñó«⌐ τáßΓ¿ φ¬αá¡á:
-
- _ellipse (_GBORDER,0,0,25,25); /* óδτÑατ¿óá¡¿Ñ «ñ¡¿σ úαá¡¿µ */
- _ellipse (_GFILLINTERIOR,25,25,0,0); /* ºá»«½¡Ñ¡¿Ñ Σ¿úπαδ */
- àß½¿ »α¿¡µ¿» «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á ¡Ñ¼¡«ú« ¡Ñ»«¡∩ΓÑ¡,
- óδ ¼«ªÑΓÑ óδºóáΓ∞ Σπ¡¬µ¿ε _ellipse, ¿ß»«½∞ºπ∩ Γ«½∞¬« µÑ¡Γα (σ,π) ¿
- αáñ¿πß (r), ¬á¬ »«¬áºá¡« ¡¿ªÑ.
- _ellipse (_GBORDER,x-r,y-r,x+r,y+r); /* óδτÑατ¿óá¡¿Ñ «ñ¡¿σ úαá¡¿µ */
-
- -꺫íαáªÑ¡¿Ñ ñπú ¿ ßÑ¬Γ«α«ó.
-
- äπúá-φΓ« τáßΓ∞ φ½½¿»ßá, ñαπú¿¼¿ ß½«óἿ, ¬«α«Γ¬á∩ ¬α¿óá∩ ½¿¡¿∩.
- æÑ¬Γ«α-φΓ« τáßΓ∞ φ½½¿»ßá, ó¬½ετáεΘá∩ ó ßÑí∩ ñπúπ ¿ »½«Θáñ∞, «úαá¡¿τÑ¡¡πε
- ñó¼∩ ½¿¡¿∩¼¿, ¿ñπΘ¿¼¿ «Γ µÑ¡Γαá. Ž«Θáñ∞ ßÑ¬Γ«αá ºá»«½¡∩ÑΓß∩ ΓѬπΘ¿¼
- µóÑΓ«¼.äπúá ¿½¿ ßÑ¬Γ«α «»αÑñѽ∩εΓß∩ »α«Γ¿ó«»«½«ª¡δ¼¿ πú½á¼¿
- «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á ¿ ¬«¡Ñτ¡δ¼¿ Γ«τ¬á¼¿ óÑ¬Γ«α«ó, ºáñáεΘ¿σ
- ¬«¡Ñτ¡δÑ Γ«τ¬¿ ñπú¿ ¿½¿ ßÑ¬Γ«αá. ûÑ¡Γα ñπú¿ ¿½¿ ßÑ¬Γ«αá-φΓ« óßÑúñá µÑ¡Γα
- «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á. äπúá ¿½¿ ßÑ¬Γ«α ¡áτ¿¡áεΓß∩ ó Γ«τ¬Ñ, úñÑ
- óÑ¬Γ«α, «»αÑñѽ∩Ѽδ⌐ µÑ¡Γα«¼ «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á ¿ ΓαÑΓ∞Ñ⌐
- »áα«⌐ Γ«τѬ, »ÑαÑßѬáÑΓ «úαá¡¿τ¿óáεΘ¿⌐ »α∩¼«πú«½∞¡¿¬. äπúá ¿½¿ ßÑ¬Γ«α
- ¬«¡τáεΓß∩ Γá¼, úñÑ óÑ¬Γ«α, «»αÑñѽ∩Ѽδ⌐ µÑ¡Γα«¼ «úαá¡¿τ¿óáεΘÑú«
- »α∩¼«πú«½∞¡¿¬á ¿ »«ß½Ññ¡Ñ⌐ »áα«⌐ Γ«τѬ, »ÑαÑßѬáÑΓ «úαá¡¿τ¿óáεΘ¿⌐
- »α∩¼«πú«½∞¡¿¬. äπúá ¿½¿ ßÑ¬Γ«α α¿ßπεΓß∩ ß ¿ß»«½∞º«ó᡿Ѽ ΓѬπΘÑú« µóÑΓá
- »« ¡á»αáó½Ñ¡¿ε τáß«ó«⌐ ßΓαѽ¬¿. äπúá-¡Ñºá¼¬¡πΓá∩ Σ¿úπαá, »«φΓ«¼π «¡á ¡Ñ
- ºá¬αáΦ¿óáÑΓß∩. æÑ¬Γ«α ºá¬αáΦ¿óáÑΓß∩ ΓѬπΘ¿¼ µóÑΓ«¼. Åα¿óÑñÑ¡¡δÑ ¡¿ªÑ
- »α¿¼Ñαδ »«¬áºδóáεΓ ¿ß»«½∞º«óá¡¿Ñ ñá¡¡δσ Σπ¡¬µ¿⌐:
-
- /* «úαá¡¿τ¿óáεΘ¿⌐ »α∩¼«πú«½∞¡¿¬ «»αÑñѽ∩ÑΓß∩ ¬««αñ¿¡áΓἿ: (,0) ¿
- (50,50), óÑ¬Γ«α ¡áτá½á-µÑ¡Γα «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á &
- (0,100); ¬«¡Ñτ¡δ⌐ óÑ¬Γ«α-µÑ¡Γα «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á
- &(100,100) */
- _arc (0, 0, 50, 50, 0, 100, 100, 100);
- _pie (_GFILLINTERIOR, 0, 0, 50, 50, 0, 100, 100, 100);
-
- -Åα¿¼Ñα: ɿ߫óá¡¿Ñ Σ¿úπα.
- #include <stdio.h>
- #include <graph.h>
- #include <math.h>
- struct videoconfig vc;
- char error_message [] = "äá¡¡δ⌐ ó¿ñÑ«-αѪ¿¼ »«ññÑনóáÑΓß∩";
- main()
- {
- int x = 50;
- int y = 40;
- if (_setvideomode(_MRES4COLOR) == 0) {
- printf ("%s\n", error_message);
- exit (0);
- }
- _getvideoconfig (&vc);
- _setlogorg (vc.numxpixels/2 - 1, vc.numypixels/2 - 1);
- _setcolor (1);
- _setlogorg (vc.numxpixels/2 - 2, vc.numypixels/2 - 1);
- _setlinestyle (0x5555);
- _rectangle (_GBORDER, -x, -y, x, y);
- _setcolor (2);
- _ellipse (_GFILLINTERIOR, -x, -y, x, y);
- _setcolor (3);
-
-
- _pie (_GFILLINTERIOR,-x, -y, x, y, -x-10, y+10, x+10, y-10);
- getchar();
- _clearscreen(_GCLEARSCREEN);
- _setdideomode (_DEFAULTMODE); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ó¿ñÑ«-αѪ¿¼á */
- }
-
-
- 4.13. çừ½¡Ñ¡¿Ñ Σ¿úπα »« Φáí½«¡π.
-
- ä½∩ ºá»«½¡Ñ¡¿∩ ½εí«⌐ ºá¼¬¡πΓ«⌐ Σ¿úπαδ »« Φáí½«¡π ¿ß»«½∞ºπÑΓß∩
- Σπ¡¬µ¿∩ _floodfill. çἬ¡πΓá∩ Σ¿úπαá-φΓ« Σ¿úπαá, ¡Ñ ¿¼ÑεΘá∩ αáºαδó«ó ó
- «úαá¡¿τ¿óáεΘÑ⌐ ÑÑ ½¿¡¿¿.
-
- -çừ½¡Ñ¡¿Ñ Σ¿úπα »« Φáí½«¡π.
-
- öπ¡¬µ¿∩ _floodfill ¿ß»«½∞ºπÑΓß∩ ñ½∩ ºá»«½¡Ñ¡¿∩ ºá¼¬¡πΓ«⌐ Σ¿úπαδ »«
- Φáí½«¡π, ºáñáóáѼ«¼π »áαá¼ÑΓα«¼ fillmask. (¼áß¬á ºá»«½¡Ñ¡¿∩). îá߬á
- ºá»«½¡Ñ¡¿∩-φΓ« ¼áßß¿ó ó«ß∞¼¿αáºα∩ñ¡δσ º¡áτÑ¡¿⌐, ó ¬«Γ«α«¼ ¬áªñδ⌐ αáºα∩ñ
- »αÑñßΓáó½∩ÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐ »¿¬ßѽ. àß½¿ αáºα∩ñ ß«ñÑαª¿Γ 0, »¿¬ßѽ
- «ßΓáÑΓß∩ ¡Ñºá»«½¡Ñ¡¡«⌐. àß½¿ í¿Γ ß«ñÑαª¿Γ 1, ∩τÑ⌐¬á ºá»«½¡∩ÑΓß∩ ΓѬπΘ¿¼
- µóÑΓ«¼. äá¡¡á∩ ¼áß¬á ºá»«½¡Ñ¡¿∩ »«óΓ«α∩ÑΓß∩ óßεñπ ¡á ºá»«½¡∩Ѽ«⌐ »½«Θáñ¿
- Σ¿úπαδ. æΓá¡ñáαΓ¡á∩ ¼áß¬á ºá»«½¡Ñ¡¿∩-φΓ« ß»½«Φ¡«Ñ ºá¬αáΦ¿óá¡¿Ñ.
-
- îáß¬á ºá»«½¡Ñ¡¿∩ ñÑ⌐ßΓóπÑΓ ó ∩ó¡«¼ αѪ¿¼Ñ ºá¬αáΦ¿óá¡¿∩. àß½¿ í¿Γ ó
- ¼á᪥ αáóÑ¡ ¡π½ε, »¿¬ßѽ «ßΓáÑΓß∩ ¡Ñºá»«½¡Ñ¡¡δ¼. àñ¿¡¿µá, ß«ñÑαªáΘá∩ß∩ ó
- ¼á᪥ ºá¬αáΦ¿óáÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐ »¿¬ßѽ ó ΓѬπΘ¿⌐ µóÑΓ. Å«-αạ«¼π
- αá߬αáΦÑ¡¡δÑ Σ¿úπαδ ¼«úπΓ íδΓ∞ ß«ºñá¡δ ß »«¼«Θ∞ε πßΓá¡«ó¬¿ ¿ ߼ѡδ
- µóÑΓ«ó ¼Ñªñπ ó맮óἿ Σπ¡¬µ¿¿ _floodfill. âαá¡¿µá, ¡Ñ ∩ó½∩εΘá∩ß∩
- ¡Ñ»αÑαδó¡«⌐ (Φáí½«¡ ¬«Γ«α«⌐ ¡Ñ αáóÑ¡ 0σFFFF), »α¿óÑñÑΓ ¬
- ¡Ñ»αÑñ߬áºπѼ«¼π αѺπ½∞ΓáΓπ, Ñß½¿ óδ ßñѽáÑΓÑ »«»δΓ¬π ºá»«½¡Ñ¡¿∩ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ _floodfill (óÑα«∩Γ¡« ¬ »ÑαÑ»«½¡Ñ¡¿ε úαáΣ¿τÑ߬«⌐
- «í½áßΓ¿).
-
- ùΓ«íδ óÑα¡πΓ∞ß∩ ¬ ΓѬπΘÑ⌐ ¼á᪥ ºá»«½¡Ñ¡¿∩, ¿ß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε
- _getfillmask. öπ¡¬µ¿∩ _getfillmask »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ Γ«ú«, τΓ«íδ
- πßΓá¡«ó¿Γ∞ ΓѬπΘπε ¼á߬π ºá»«½¡Ñ¡¿∩ ó ºáñá¡¡«Ñ º¡áτÑ¡¿Ñ. ì¿ªÑ »«¬áºá¡
- Σ«α¼áΓ Σπ¡¬µ¿⌐ ºáñá¡¿∩ ¼á߬¿ ºá»«½¡Ñ¡¿∩:
-
- _getfillmask (fillmask);
- _setfillmask (fillmask);
-
- îáß¬á ºá»«½¡Ñ¡¿∩ NULL ¿ß»«½∞ºπÑΓß∩ ñ½∩ »ÑαѬ½ετÑ¡¿∩ αѪ¿¼á
- ºá»«½¡Ñ¡¿∩ Σ¿úπαδ ó ß»½«Φ¡«Ñ ºá»«½¡Ñ¡¿Ñ, ¬á¬ »«¬áºá¡« ¡¿ªÑ:
- _setfillmask (NULL); /* »ÑαѬ½ετÑ¡¿Ñ ¼á߬¿ ¡á ß»½«Φ¡«Ñ ºá»«½¡Ñ¡¿Ñ */
-
- -櫺ñá¡¿Ñ ¼á߬¿ ºá»«½¡Ñ¡¿∩.
-
- îáß¬á ºá»«½¡Ñ¡¿∩ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¼áßß¿ó ó«ß∞¼¿αáºα∩ñ¡δσ º¡áτÑ¡¿⌐
- («»αÑñѽ∩Ѽδ⌐, ¬á¬ «íδτ¡δ⌐ ß¿¼ó«½∞¡δ⌐ ¼áßß¿ó). 櫺ñá¡¿Ñ ¼á߬¿ ºá»«½¡Ñ¡¿∩
- «»¿ßδóáÑΓß∩ ¡¿ªÑ:
-
- 1. ìáα¿ßπ⌐ΓÑ Γáí½¿µπ-Φáí½«¡ ß ó«ßѼ∞ε ¬«½«¡¬á¼¿ ¿ ó«ßѼ∞ε ßΓα«¬á¼¿,
- ºá»«½¡Ñ¡¡πε ¡π½∩¼¿. Å«¼ÑßΓ¿ΓÑ Ññ¿¡¿µδ (1) ó ¬áªñπε ∩τÑ⌐¬π ¬«Γ«απε óδ
- σ«Γ¿ΓÑ ºá¬αáß¿Γ∞.
-
- 2. ÅαÑ«íαáºπ⌐ΓÑ 8-αáºα∩ñ¡δÑ τ¿ß½á ó ¬áªñ«⌐ ¬«½«¡¬Ñ ó ñÑß∩Γ¿τ¡δÑ
- µÑ½δÑ.
-
- 3. 櫺ñá⌐ΓÑ ¿º φΓ¿σ º¡áτÑ¡¿⌐ ¼áßß¿ó, ¬á¬ »«¬áºá¡« ¡¿ªÑ:
-
- /* ¼áß¬á ºá»«½¡Ñ¡¿∩ ñ½∩ Φáí½«¡á X
- ñó«¿τ¡«Ñ ñÑß∩Γ¿τ¡«Ñ
- »αÑñßΓáó½Ñ¡¿Ñ »αÑñßΓáó½Ñ¡¿Ñ
-
- 10000001 129
- 01000010 66
- 00100100 36
- 00011000 24
- 00011000 24
- 00100100 36
- 01000010 66
- 10000001 129 */
-
- char fill_mask [] = {129,66,36,24,24,36,66,129};
-
- 4. ìáα¿ßπ⌐ΓÑ Σ¿úπαπ ¿ ºá¬αáß∞ΓÑ ÑÑ ó¡πΓαÑ¡¡«ßΓ∞ ß »«¼«Θ∞ε Γ«½∞-
- ¬« τΓ« ß«ºñá¡¡«⌐ ¼á߬¿.
- _setfillmask (fill_mask);
- _rectangle (_GFILLINTERIOR,50,50,25,25,100);
-
- -Åα¿¼Ñα: çừ½¡Ñ¡¿Ñ Σ¿úπα »« «íαẵá¼.
- #include <stdio.h>
- #include <graph.h>
- char mask1 [] = {0,66,36,24,24,36,36,66,0}; /* 2 ¼á߬¿ ºá»«½¡Ñ¡¿∩ */
- char mask2 [] = {0,24,0,102,102,0,24,0};
- char error_message [] = This video mode is not supported";
- main()
- {
- if (_setvideomode(_MRES4COLOR) == 0) {
- printf ("%s'n", error_message);
- exit(0);
- }
- _setfillmask (mask1);
- _setcolor (1); /* ¿ß»«½∞º«óá¡¿Ñ ¼¡«ú«µóÑΓ¡«ßΓ¿ */
- _rectangle (_GBORDER,0,0,150,150);
- _setcolor (2);
- _floodfill (100,100,1); /* ßΓ«» ¡á úαá¡¿µÑ µóÑΓá */
- _setcolor (3);
- _setfillmask (mask2);
- _floodfill (100,100,1);
- getchar(); /* «ª¿ñá¡¿Ñ ó«ºóαáΓá ¬áαÑΓ¬¿ */
- _clearsceen(_GCLEARSCREEN);
- _setvideomode (_DEFAULTMODE); /* ó«ßßΓá¡«ó½Ñ¡¿ ó¿ñÑ«-αѪ¿¼á */
- }
-
-
-
- 4.14. éδτÑατ¿óá¡¿Ñ ¿ ºá»«¼¿¡á¡¿Ñ Σ¿úπα.
-
- é »á¼∩Γ¿ ¼«ª¡« ºá»«¼¿¡áΓ∞ ß½«ª¡δÑ Σ¿úπαδ ñ½∩ ñá½∞¡Ñ⌐ΦÑú«
- ¿ß»«½∞º«óá¡¿∩ ¿σ ó ¼π½∞Γ¿»½¿¬áµ¿¿. öπ¡¬µ¿∩ _getimage ºá»¿ßδóáÑΓ
- ¿º«íααáªÑ¡¿Ñ ó »á¼∩Γ∞, á Σπ¡¬µ¿∩ _putimage óδºδóáÑΓ σαá¡∩Θ¿⌐ß∩ ó »á¼∩Γ¿
- ¿º«íαáªÑ¡¿Ñ ¡á φ¬αá¡.
-
- -çừ¼¿¡á¡¿Ñ ¿º«íαáªÑ¡¿⌐.
-
- ÉẼÑαδ ß«σαá¡∩Ѽ«ú« ó »á¼∩Γ¿ φ¬αá¡¡«ú« «íαáºá «úαá¡¿τ¿óáεΓß∩
- αẼÑαἿ «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á. ä½∩ Γ«ú«, τΓ«íδ ߬«»¿α«óáΓ∞
- «í½áßΓ∞ φ¬αá¡á, ¡áσ«ñ∩Θπεß∩ ó¡πΓα¿ «úαá¡¿τ¿óáεΘÑú« »α∩¼«πú«½∞¡¿¬á, ó
- íπΣÑα¡πε »á¼∩Γ∞, ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ _getimage, ¬á¬ »«¬áºá¡« ¡¿ªÑ:
-
- _getimage (0,0,10,10,buffer);
-
- Äúαá¡¿τ¿óáεΘ¿⌐ »α∩¼«πú«½∞¡¿¬ ¿¼ÑÑΓ ¬««αñ¿¡áΓδ »α«Γ¿ó«»«½«ª¡δσ πú½«ó
- (0,0) ¿ (10,10). ÅÑαѼѡ¡á∩ buffer-φΓ« π¬áºáΓѽ∞ ¡á íπΣÑα, ó ¬«Γ«α«⌐
- íπñÑΓ σαá¡¿Γ∞ß∩ ñá¡¡δ⌐ φ¬αá¡¡δ⌐ «íαáº.
-
- -ÆαÑí«óá¡¿∩ »á¼∩Γ¿ ñ½∩ Σπ¡¬µ¿¿ _getimage.
-
- üπΣÑα ñ«½ªÑ¡ ¿¼ÑΓ∞ ñ«ßΓáΓ«τ¡δÑ αẼÑαδ ñ½∩ αẼÑΘÑ¡¿∩ ¿º«íαáªÑ¡¿∩ ó
- »á¼∩Γ¿. ÅÑαÑñ ΓѼ, ¬á¬ ºá»¿ßáΓ∞ ¿º«íαáªÑ¡¿Ñ, óδ»«½¡¿ΓÑ Σπ¡¬µ¿ε
- _getimagesize, «»αÑñѽ∩εΘπε αẼÑα íπΣÑαá ñ½∩ σαá¡Ñ¡¿∩ ¿º«íαáªÑ¡¿∩.
- Åα¿¼Ñα, »α¿óÑñÑ¡¡δ⌐ ó ¬«¡µÑ ñá¡¡«ú« αáºñÑ½á ¿½½εßΓα¿απÑΓ ΓᬪÑ
- ¿ß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿¿ malloc ñ½∩ αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ »«ñ íπΣÑα.
-
- éδó«ñ ¿º«íαáªÑ¡¿⌐ ¿º »á¼∩Γ¿.
-
- öπ¡¬µ¿∩ _putimage ¿ß»«½∞ºπÑΓß∩ ñ½∩ ó맮óá «íαáºá ß«σαá¡Ñ¡¡«ú«
- »α∩¼«πú«½∞¡¿¬á ¡á φ¬αá¡, »α¿τѼ ó Σπ¡¬µ¿¿ ºáñáεΓß∩ ¬««αñ¿¡áΓδ Γ«τ¬¿
- óÑασ¡Ñú« ½Ñó«ú« πú½á ªÑ½áѼ«ú« »«∩ó½Ñ¡¿∩ »α∩¼«πú«½∞¡¿¬á ¡á φ¬αá¡Ñ.
- öπ¡¬µ¿∩, »α¿óÑñÑ¡¡á∩ ¡¿ªÑ, ¿½½εßΓα¿απÑΓ óδó«ñ ¿º«íαáªÑ¡¿∩ ¿º »á¼∩Γ¿ ¡á
- φ¬αá¡ ó¡πΓα∞. »α∩¼«πú«½∞¡¿¬á ß ¬««αñ¿¡áΓἿ ó ½Ñó«¼ óÑασ¡Ñ¼ πú½π
- (50,50). ū߽Ññ¡¿⌐ »áαá¼ÑΓα-φΓ« áαúπ¼Ñ¡Γ "ú½áú«½-ñÑ⌐ßΓó¿∩",
- «»αÑñѽ∩εΘ¿⌐, ¬á¬¿¼ «íαẫ¼ «íαáº, σαá¡∩Θ¿⌐ß∩ ó »á¼∩Γ¿, ñ«½ªÑ¡
- óºá¿¼«ñÑ⌐ßΓó«óáΓ∞ ß ΓѬπΘ¿¼ φ¬αá¡«¼. _putimage (50,50,buffer,_GPSET);
-
- -Çαúπ¼Ñ¡Γ "ú½áú«½-ñÑ⌐ßΓó¿∩ Σπ¡¬µ¿¿ _putimage.
-
- â½áú«½ ñÑ⌐ßΓó¿∩ π»αáó½∩ÑΓ ΓѼ, ¬á¬¿¼ «íαẫ¼ ¿º«íααáªÑ¡¿Ñ,
- óδºδóáѼ«Ñ ¿º »á¼∩Γ¿, íπñÑΓ óºá¿¼«ñÑ⌐ßΓó«óáΓ∞ ß ΓѼ, τΓ« πªÑ ÑßΓ∞ ¡á
- φ¬αá¡Ñ. Ä»¿ßδóáεΘ¿Ñ ¬«¡ßΓá¡Γδ ñá¡¡«ú« áαúπ¼Ñ¡Γá »α¿ó«ñ∩Γ ¬ ß½ÑñπεΘ¿¼
- ñÑ⌐ßΓó¿∩¼:
-
- è«¡ßΓá¡Γá äÑ⌐ßΓó¿Ñ
-
-
- _GPSET Åα∩¼á∩ »ÑαÑß佬á.
- _GPRESET Åα∩¼á∩ »ÑαÑß佬á, µóÑΓ ¿¡óÑαΓ¿α«óá¡.
- _GAND ï«ú¿τÑ߬«Ñ AND óδºóá¡¡«ú« «íαáºá ¿ ΓѬπΘÑú«
- φ¬αá¡á «íαáºá.
- _GOR ìὫªÑ¡¿Ñ «íαáºá ¡á ßπΘÑßΓóπεΘ¿⌐ «íαáº.
- _GXOR ê¡óÑαß¿∩ φ¬αá¡á Γá¼, úñÑ ó íπΣÑαÑ ßπΘÑßΓóπÑΓ
- Γ«τ¬á.
-
-
-
- -Åα¿¼Ñα: α¿ß«óá¡¿Ñ ¿ ºá»«¼¿¡á¡¿Ñ Σ¿úπαδ.
- draw_and_store_figure()
- {
- _setbkcolor (0);
- _setcolor (1);
- _rectangle (_GBORDER,0,0,10,10);
- _setcolor (2);
- _rectangle (_GFILLINTERIOR,1,1,9,9);
- _setcolor (3);
- _moveto (1,1);
-
-
- _lineto (9,9);
- _moveto (1,9);
- _lineto (9,1);
- buffer=(char far *)malloc((unsigned int)
- _imagesize(0,0,10,10));
- _getimage (0,0,10,10, buffer);
- }
-
- äá¡¡á∩ Σπ¡¬µ¿∩ α¿ßπÑΓ Σ¿úπαπ, «»αÑñѽ∩ÑΓ αẼÑα, ΓαÑíπѼδ⌐ ñ½∩
- αẼÑΘÑ¡¿∩ ¿º«íαáªÑ¡¿∩ ó »á¼∩Γ¿, ºáΓѼ »«¼ÑΘáÑΓ Σ¿úπαπ ó »á¼∩Γ∞ (íπΣÑα)
- ñ½∩ ñá½∞¡Ñ⌐ΦÑú« ¿ß»«½∞º«óá¡¿∩ ÑÑ ó ¼π½∞Γ¿»½¿¬áµ¿¿. (äá¡¡á∩ Σπ¡¬µ¿∩
- »«ºñ¡ÑÑ »«∩ó½∩ÑΓß∩ ó ÉáºñÑ½Ñ 4.15, "êß»«½∞º«óá¡¿Ñ ¼π½∞Γ¿»½¿¬áµ¿¿", ó
- »«½¡«⌐ »α«úαá¼¼Ñ ¡á ∩ºδ¬Ñ æê.
-
-
- 4.15. êß»«½∞º«óá¡¿Ñ ¼π½∞Γ¿»½¿¬áµ¿¿.
-
- Åα«ßΓÑ⌐Φá∩ ¼π½∞Γ¿»½¿¬áµ¿∩ ¼«ªÑΓ íδΓ∞ ß«ºñá¡á, ¡á»α¿¼Ñα, »ÑαѼÑΘÑ¡¿Ñ¼
- Σ¿úπαδ ó ¡«óπε »«º¿µ¿ε ¡á φ¬αá¡Ñ ß πñá½Ñ¡¿Ñ¼ ßΓáα«ú« ¿º«íαáªÑ¡¿∩. ä½∩
- í«½ÑÑ íδßΓα«⌐ ¿ φΣΣÑ¬Γ¿ó¡«⌐ ¼π½∞Γ¿»½¿¬áµ¿¿ ß »«¼«Θ∞ε ß½«ª¡δσ Σ¿úπα,
- ¿ß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿¿ _getimage ¿ _ putimage.
-
- -櫺ñá¡¿Ñ ¼π½∞Γ¿»½¿¬áµ¿¿.
-
- 櫺ñá⌐ΓÑ ¿º«íαáªÑ¡¿Ñ ¡á φ¬αá¡Ñ, ¿ß»«½∞ºπ∩ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿,
- ßñѽá⌐ΓÑ "ß¡¿¼«¬" φΓ«ú« ¿º«íαáªÑ¡¿∩ ó »á¼∩Γ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- _getimage. çáΓѼ »«ßαÑñßΓó«¼ Σπ¡¬µ¿¿ _putimage óδ ¼«ªÑΓÑ ó«ß»α«¿ºóÑßΓ¿
- ñá¡¡«Ñ ¿º«íαáªÑ¡¿Ñ úñÑ-¡¿íπñ∞ ¡á φ¬αá¡Ñ.
-
- ä½∩ ¼π½∞Γ¿»½¿¬áµ¿¿ σ«α«Φ« »«ñσ«ñ∩Γ ñóá ú½áú«½á-ñÑ⌐ßΓó¿∩: _GXOR ¿
- _GPSET. îπ½∞Γ¿»½¿¬áµ¿∩ ß »«¼«Θ∞ε _GPSET αáí«ΓáÑΓ íδßΓαÑÑ, ¡« π¡¿τΓ«ªáÑΓ
- Σ«¡, ¡á»α«Γ¿ó, ¼π½∞Γ¿»½¿¬áµ¿∩ ß _GXOR αáí«ΓáÑΓ ¼Ññ½Ñ¡¡ÑÑ, ¡« ß«σαá¡∩ÑΓ
- Σ«¡ φ¬αá¡á.
-
-
- -êß»«½∞º«óá¡¿Ñ ó ¼π½∞Γ¿»½¿¬áµ¿¿ ¬«¡ßΓá¡Γδ _GXOR.
-
- îπ½∞Γ¿»½¿¬áµ¿∩ ß »α¿¼Ñ¡Ñ¡¿Ñ¼ _GXOR «ßπΘÑßΓó½∩ÑΓß∩ óδ»«½¡Ñ¡¿Ñ¼
- ß½ÑñπεΘ¿σ τÑΓδαÑσ Φáú«ó:
-
- 1.Å«¼ÑßΓ¿ΓÑ «íΩÑ¬Γ ¡á φ¬αá¡ ß »«¼«Θ∞ε _GXOR.
-
- 2.éδτ¿ß½¿ΓÑ ¡«ó«Ñ »«½«ªÑ¡¿Ñ «íΩѬΓá.
-
- 3.Å«¼ÑßΓ¿ΓÑ «íΩÑ¬Γ ¡á φ¬αá¡ óΓ«α«⌐ αẠ»« ßΓáα«⌐ »«º¿µ¿¿ ß
- ¬«¡ßΓá¡Γ«⌐ GXOR-τΓ«íδ πñ὿Γ∞ ßΓáα«Ñ ¿º«íαáªÑ¡¿Ñ
-
- 4.ÅÑαÑ⌐ñ¿ΓÑ ¬ Φáúπ 1, ¡« ¡á φëà αẠ»«¼ÑßΓ¿ΓÑ «íΩÑ¬Γ ¡á ¡«óπε
- »«º¿µ¿ε.
-
- ÅÑαѼÑΘÑ¡¿Ñ «íΩѬΓá, óδ»«½¡Ñ¡¡«Ñ ß »«¼«Θ∞ε ñá¡¡δσ τÑΓδαÑσ Φáú«ó,
- «ßΓáó½∩ÑΓ Σ«¡ ¡Ñ¿º¼Ñ¡¡δ¼ »«ß½Ñ Φáúá 3. ÄΓ ¼¿úá¡¿∩ ¿º«íαáªÑ¡¿∩ ¼«ª¡«
- ¿ºíáó¿Γ∞ß∩ »«ßαÑñßΓó«¼ ¼¿¡¿¼¿ºáµ¿¿ óαѼѡ¿ αáí«Γδ ¼Ñªñπ ΦáúἿ 4 ¿ 1, ¿
- πóÑαÑ¡¡«ßΓ¿, τΓ« ¼Ñªñπ ΦáúἿ 1 ¿ 3 »α«Φ½« ñ«ßΓáΓ«τ¡« óαѼѡ¿. àß½¿
- »ÑαѼÑΘáÑΓß∩ í«½ÑÑ, τѼ 1 «íΩѬΓ, ¬áªñδ⌐ «íΩÑ¬Γ ñ«½ªÑ¡ «íαáíáΓδóáΓ∞ß∩
- «Γñѽ∞¡«, «ñ¿¡ Φáú ºá «ñ¿¡ »α¿Ñ¼.
-
- -êß»«½∞º«óá¡¿Ñ ó ¼π½∞Γ¿»½¿¬áµ¿¿ ¬«¡ßΓá¡Γδ _GPSET.
-
- àß½¿ ß«σαá¡Ñ¡¿Ñ Σ«¡á ¡Ñ ∩ó½∩ÑΓß∩ ó᪡δ¼, ¼π½∞Γ¿»½¿¬áµ¿ε ¼«ª¡«
- óδ»«½∞¡¿Γ∞ ß »«¼«Θ∞ε «»µ¿¿ _GPSET. àß½¿ úαá¡¿µá «úαá¡¿τ¿óáεΘÑú«
- »α∩¼«πú«½∞¡¿¬á ó«¬απú ¿º«íαáªÑ¡¿∩ Γá¬á∩ ªÑ í«½∞Φá∩ ¿½¿ í«½∞ΦÑ, τѼ
- ¼á¬ß¿¼á½∞¡«Ñ αáßßΓ«∩¡¿Ñ, ¡á ¬«Γ«α«Ñ »ÑαѼÑΘáÑΓß∩ «íΩѬΓ, Γ« óß∩¬¿⌐ αáº,
- ¬á¬ «íαẠíπñÑΓ »«¼ÑΘáΓ∞ß∩ ó ¡«óπε »«º¿µ¿ε, úαá¡¿µá íπñÑΓ π¡¿τΓ«ªáΓ∞ óßÑ
- ß½Ññδ «íαáºá ó ßΓáα«⌐ »«º¿µ¿¿.
-
- -Åα¿¼Ñα: îπ½∞Γ¿»½¿¬áµ¿∩ ß »«¼«Θ∞ε ºá»«¼¿¡á¡¿∩ «íαẫó.
- .
- . previous includes from huppix.c
- .
- #include qmalloc.h> /* ΓαÑíπÑΓß∩ ñ½∩ ¿ß»«½∞º«óá¡¿∩ íπΣÑαá */
- .
-
-
- . declarations from hyppix.c
- .
- char far *buffer; /* ¿ß»«½∞ºπÑΓß∩ ß Σπ¡¬µ¿∩¼¿ _getimage ¿
- _putimage */
- main()
- { .
- . body of program from hyppix.c
- .
- }
- hypcycle()
- { .
- . declarations and initialization from hyppix.c
- .
- draw_and_store_figure(); /* »«¼ÑΘÑ¡¿Ñ Σ¿úπαδ ó íπΣÑα */
- _clearscreen (_GCLEARSCREEN);
- .
- . drawing of axes as in hyppix.c
- .
- /* αáßßΓá¡«ó¬á Γ«τѬ ¿ »«¼ÑΘÑ¡¿Ñ «íαáºá ¿º íπΣÑαá ¡á φ¬αá¡ */
- while (!kbhit()) {
- for (i=1; i<= 20; i++) {
- ang = ang + 2*pi/100;
- x = x=+(a-b)*cos(ang)+h*cos(ang*(a-b)/b);
- y = y0-(a-b)*sin(ang)+h*sin(ang*(a-b)/b);
- _putimage (x,y,buffer?GXOR);
- for (j=1; j<=6000; j++)
- ;
- _putimage (x,y,buffer,GXOR);
-
-
- }
- }
- }
- draw_and_store_figure()
- { .
- . ß«ñÑন¡Ñ Σπ¡¬µ¿¿ ¿º »αÑñδñπΘÑú« αáºñѽá.
- .
- }
-
- Åα«úαá¼¼á óδτÑατ¿óá¡¿∩ ú¿»«µ¿¬½«¿ñá ¿º Éáºñѽá 4.9 íδ½á
- ¼«ñ¿Σ¿µ¿α«óá¡á ß ΓѼ, τΓ«íδ óδτÑατ¿óá¡¿Ñ ¬α¿ó«⌐ »α«¿ºó«ñ¿½«ß∞ ß »«¼«Θ∞ε
- ºá»«¼¡Ñ¡¡«ú« Φáí½«¡á ¿ »«óÑασ Σ«¡á ¡á φ¬αá¡Ñ. öπ¡¬µ¿∩
- _draw_and_store_ligure óº∩Γá ¿º Éáºñѽá 4.14, «¡á ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿Ñ⌐
- _getimage ñ½∩ ß«σαá¡Ñ¡¿∩ óßÑ⌐ úαáΣ¿τÑ߬«⌐ Σ¿úπαδ ó íπΣÑα¡«⌐ «í½áßΓ¿.
- æ¬Ñ½ÑΓ ñá¡¡«⌐ »α«úαá¼¼δ »α¿óÑñÑ¡ óδΦÑ ß ºá¼Ñτá¡¿∩¼¿ « »α«¿ºóÑñÑ¡¡δσ
- ¿º¼Ñ¡Ñ¡¿∩σ.
-