Graph модулi
1.1. Turbo Pascal тіліндегі Graph модулі
Turbo Pascal бағдарламалау тілінде символдық режимнен бөлек графикалық режимде де жұмыс істеуге болады. Бұл режим әртүрлі графикалық кескіндер құрастыруға мүмкіндік береді. Turbo Pascal-дың графикалық мүмкіндіктерін пайдалану үшін арнайы GRAPH кітапханасы қосылады. GRAPH модуліндегі графикалық процедуралар мен функциялар арқылы экранға графикалық объектілерді салуға болады.
Қосу тәсілі
GRAPH модуліндегі процедуралар мен функцияларды қолдану үшін бағдарламаның сипаттау бөлімінде: USES Graph; деп көрсету қажет.
Turbo Pascal 7.0 ортасында Graph модулінде шамамен 132 тұрақты, 7 қосымша тип, 2 айнымалы, 57 процедура және 22 функция қолданылады.
Графикалық режимді таңдау және драйверлер
Графикамен жұмыс бастамас бұрын мониторға сәйкес графикалық режимді орнату қажет. Turbo Pascal құрамында алдын ала берілген драйверлер бар, және әр драйвер бірнеше режимде жұмыс істей алады. Драйвер түрі мен оның режимі санмен де, тұрақты атаулармен де беріледі.
Кең таралған графикалық драйверлер
Төмендегі атаулар Turbo Pascal-дағы BGI/DGI драйверлеріне сәйкес келеді.
| Драйвер файлы | Видеоадаптер |
|---|---|
| CGA.BGI / CGA.DGI | CGA, MCGA |
| EGAVGA.BGI / EGAVGA.DGI | EGA, VGA |
| HERC.BGI | Hercules (монохромды) |
| ATT.BGI | AT&T 6300 (400 жол) |
| PC3270.BGI | IBM PC 3270 |
| IBM8514.BGI | IBM-8514 |
InitGraph: графикалық режимді іске қосу
GRAPH модулі қосылғаннан кейін оның процедуралары мен функцияларын қолдануға болады. Графикалық режимді іске қосу үшін негізгі процедура:
InitGraph(var Driver, Mode: Integer; Path: String);
- Driver
- Графикалық драйвер түрін анықтайтын параметр.
- Mode
- Таңдалған драйвердің жұмыс режимі.
- Path
- Драйвер файлдары орналасқан бумаға жол (мысалы, C:\TP7).
Driver мәні Graph модулінде хабарланған тұрақтылар жиынымен шектеледі. Көптеген видеоадаптерлер монитордың көрсету мүмкіндіктеріне қарай бірнеше графикалық режимде жұмыс істей алады.
Мәтіндік режим мен графикалық режим айырмашылығы
Мәтіндік режимде экранда әдетте 40 (немесе 80) × 25 символ бейнеленеді. Ал графикалық режимде экрандағы ең кіші объект пиксел (графикалық нүкте) болып саналады.
Мысалы, кең қолданылатын VGA адаптерінің қалыпты режимінде экран өлшемі 640 × 480 пиксел болады және 16 түсті ажыратуға мүмкіндік береді.
Практикалық мысал
Бағдарлама басына Uses Graph; операторын орналастырғанда ғана Graph модулінің мүмкіндіктерін толық пайдалануға болады. Ал InitGraph(Gd, Gm, 'C:\TP7'); процедурасы компьютердегі видеоадаптерді автоматты түрде анықтап, сәйкес драйверді жүктейді де, жүйені графикалық режимге көшіреді.
Gd және Gm тұрақтылары: режимдер кестесі
Жиі қолданылатын режимдер
Атаулар мен мәндер Graph модуліндегі тұрақтыларға сәйкес беріледі.
| Gd (драйвер) | Мәні | Gm (режим) | Сипаттама |
|---|---|---|---|
| Detect | 0 | — | Драйверді автоматты анықтау |
| CGA | 1 | — | CGA режимдері |
| MCGA | 2 | — | MCGA режимдері |
| EGA | 3 | EGALo (0) | 640 × 200, 16 түс |
| EGA | 3 | EGAHi (1) | 640 × 350, 16 түс |
| EGA64 | 4 | EGA64Lo (0) | 640 × 200, 16 түс |
| EGA64 | 4 | EGA64Hi (1) | 640 × 350, 4 түс |
| EGAMono | 5 | EGAMonoHi (3) | 640 × 350, монохром |
| HercMono | 7 | — | Hercules монохром |
| ATT400 | 8 | — | AT&T 400 жол |
| VGA | 9 | VGALo (0) | 640 × 200, 16 түс |
| VGA | 9 | VGAMed (1) | 640 × 350, 16 түс |
| VGA | 9 | VGAHi (2) | 640 × 480, 16 түс |
| PC3270 | 10 | PC3270Hi (0) | 720 × 350, 1 түс |
| IBM8514 | 6 | IBM8514Lo (0) | 640 × 480, 256 түс |
| IBM8514 | 6 | IBM8514Hi (1) | 1024 × 768, 256 түс |
Қате кодын тексеру
GraphResult функциясы нөлден өзге мән қайтарса, бұл графикалық режимге көшу кезінде қате болғанын (қате кодын) білдіреді.
Графикалық режимнен шығу
CloseGraph процедурасы графикалық драйверді жадтан шығарып, видеоадаптердің мәтіндік режимін қалпына келтіреді.
1.2. Графикалық координаталар жүйесі
Графикалық координаталар жүйесі экрандағы нүктенің (пикселдің) орнын анықтайды. Координата ретінде пикселдердің реттік нөмірі алынады. Мысалы, 640 × 480 режимінде координаталар аралығы: 0 ≤ X ≤ 639 және 0 ≤ Y ≤ 479.
Бағытталуы
X координатасының мәні оңға қарай, ал Y координатасының мәні төмен қарай өседі.