Grafikai elemek programozása Turbo PASCAL-ban. A grafikus üzemmód,alakzatok rajzolása.

Számítógépünkhöz több féle grafikus kártyát csatolhatunk. Ennek megfelelôen a grafikus üzemmódban a felbontás és színeinek száma (ezek a grafikus kártya legjellemzôbb adatai) eltérôek .

A legismertebb grafikus kártyák :

CGA ( Color Graphics Adapter )
320 * 200 képpont, 16 szín
640 * 200 képpont, 2 szín (Monochrome)
MCGA ( Multi Color Graphics Adapter )
320 * 200 képpont, 256 szín
TANDY
320 * 200 képpont, 16 szín
HERCULES (vagy röviden HERC )
720 * 348 képpont, Monochrome ( 2 szín )
EGA ( Enached Graphics Adapter )
640 * 350 képpont, 16/64 szín
VGA ( Video Graphics Array )
640 * 480 képpont, 16/64/256 szín
800 * 600 képpont, 256 szín (SVGA 512 KB memória)
1024 * 768 képpont, 256 szín (SVGA 1 MB memória)
XGA (eXtended Graphics Array)
Felbontása és színek száma azonos a VGA -val, de sebessége DOS-ban 90%-kal, Windows-ban 50%-kal nagyobb.

A Pascal a 2.0 verzió óta támogatja a grafika kezelését. Akkor csupán egy-két eljárás segítette a programozó munkáját, míg a Pascal 5.5-ben már 79 eljárás illetve függvény hivatott ugyanerre a célra.

Grafikus file-ok :
GRAPH.TPU – graph unit,ez tartalmazza a grafikus eljárásokat ill. függvényeket
*.BGI – ezek tartalmazzák a különbözô grafikus kártyákhoz tartozó grafikus meghajtókat
*.CHR – a grafikus karakterkészletet tartalmazzák

A számítógép kétféle üzemmódot használhat, a karaktereset és a grafikust. Alapértelmezésben a karakteres képernyôt látjuk, melynek a legkisebb egysége a karakter. A grafikus képernyô legkisebb egysége a képpont (pixel). Ahhoz hogy a grafikus képernyôn tudjunk dolgozni elôször is az adatleíró részben meg kell hívni a Graph unitot, aztán inicializálni kell azt,amit az InitGraph (grafikus meghajtó, grafikus mód, az aktuális .BGI file-t tartalmazó könyvtár neve) eljárással tudunk megtenni.

A grafikus meghajtó és a grafikus mód típusát a DetectGraph (graf.megh., graf.mód) eljárással tudjuk lekérdezni. Ha nincs grafikus meghajtó a gépben, akkor grafikus meghajtó= -2 lesz. Ha befejeztük a munkánkat a grafikus képernyôn, akkor a CloseGraph utasítással zárjuk be azt.

Vonalas geometriai alakzatok:

Ezek olyan alakzatok, melyek rajzolásához elegendô egy vonal. Itt lehetôség nyílik az egyenes rajzolási módjának beállítására is (SetLineStyle eljárás).
Vonalrajzoló eljárások a következôk:
Arc – Körív
Circle – Kör
Drawpoly – Polinom
Ellipse – Ellipszis
Line, LineTo, LineRel – Egyenes
Rectangle – Téglalap

Festett geometriai alakzatok:

Ide azok az eljárások sorolandók amelyek körvonala zárt belül pedig egy színnel vagy mintával vannak kitöltve. Létrehozásuk két féle módon történhet: vagy megrajzoljuk a körvonalat,és azt festjük ki (FloodFill eljárás), vagy pedig eleve festett alakzatokat rajzolunk. Ez utóbbit a következô eljárásokkal tehetjkük meg:
Bar – Téglalap
Bar3d – Téglatest
FillEllipse – Ellipszis
FillPoly – Sokszög
Pieslice – Körcikk
Sector – Elipsziscikk

Szöveg a grafikus képernyôn:

Grafikus képernyôre a szöveget másképp kell írni mint a karakteresre. A szöveg pozicionálása pixelenként történik, a kiválasztott pixelhez kilencféle módon illeszthetô a kiíratandó szöveg, amit beállíthatunk a SetTextJustify eljárással. További eljárások:
SetTextStyle: Beállítja az aktuális karakterkészlet típusát és méretét.
SetUserCharSize: A karakter magasságát és szélességét állítja be.
TextHeight: Megadja a szöveg magasságát (pixelben).
TextWidth: Megadja a szöveg szélességét(pixelben).
OutText: Kiírja a megadott szöveget a kurzor aktuális pozíciójától.
OutTextXY: A megadott koordinátájú ponttól írja ki a szöveget.

Az animáció:

A mozgó alakzatok létrehozására is szolgál néhány eljárás. A számítógép a benne lévô grafikus kártyától függôen, több képernyônyi adatot is képes egyszerre tárolni a képernyômemóriában (az általános az 1 vagy 2 képernyôlap).
GetImage: A képernyô megadott részét elmenti egy bufferbe.
PutImage: Képmezõ ráhelyezése a képernyõre.
SetActivPage: Kijelöli azt a képernyôlapot,amelyikre dolgozunk.
SetVisualPage:Láthatóvá teszi az adott grafikus lapot.

Egyébb fontos utasítások :

ClearDevice: Képernyô törlés
SetBkColor: Háttérszín beállítása
SetColor: Irószín beállítása
GetX,GetY: A kurzorpozició lekérdezése
MoveTo: Kurzormozgatás