Pascal grafikai könyvtárai
§ 6.1. Pascal grafikai könyvtárai
A Pascal programnyelv létrehozása óta eltelt idő alatt óriási számú alprogramot írtak le, amelyek felhasználhatók az alkalmazásprogramokban. Az ilyen kész szubrutinokat könyvtárakban gyűjtik össze és modulok formájában tervezik. A modul egy olyan speciálisan megtervezett kód, amelyet nem lehet függetlenül végrehajtani, de bármely program csatlakoztatható és használható. A Pascal nyelven elérhető modulok neve, alprogramjaik összetevőinek neve, megtalálhatók a szakirodalomban.
A szubrutin könyvtárak használatának szükségessége például a képernyőre történő rajzoláskor merül fel. Általában szükség van a Graph és Ct könyvtárak használatára. A könyvtáraknak a program elején való összekapcsolásához meg kell adnia a neveket a felhasználási irányelvben, például:
A CRT modul olyan eljárásokat és funkciókat tartalmaz, amelyek szabályozzák a képernyő szöveges módját, hanggal dolgoznak, a képernyő tisztítására és a billentyűzeten való munkára. A GRAPH modul kiterjedt típusú készleteket, állandókat, eljárásokat és funkciókat tartalmaz (több mint 50) a képernyő grafikus módjának vezérlésére.
Ezek a könyvtárak több tucat eljárást és funkciót tartalmaznak, amelyek közül néhányat az alábbiakban ismertetünk. Ezeknek a moduloknak a teljes leírása megtalálható a szakirodalomban. Az alábbi leírás mutatja a paraméterek számát és típusát, valamint a funkciók típusát, hogy a programozó tájékozódjon, milyen adatokat használhat fel a rutinok hívásakor. A híváskezelõk írása során azonban a típusok nincsenek megadva, amint azt a következõ bekezdésekben bemutatjuk.
putpixel (x.y.integer; color.word) - pontot rajzol (x, y) és színes színnel.
vonal (x 1, y 1, x 2, y 2: egész szám) - vonalat rajzol, hogy elindul a ponton (x1, y1), és végződik, egy pont (x2, y2).
téglalap (x 1, y 1, x 2, y 2: egész szám) - egy téglalapot rajzol (x1, y1) - a koordinátákat a bal felső sarokban (x2, y2) - jobb alsó.
bar (x1, y1, x2, y2) - rajz egy kitöltött téglalapot (x1, y1) - a koordinátákat a bal felső sarokban (x2, y2) - jobb alsó sarokban. A szín és a kitöltési mintát a SetFillStyle és a SetFillPattern eljárások határozzák meg.
kör (x.y.integer; R.word) egy (x, y) és az R sugarú középpontot rajzol.
ív (x: y: egész szám, sztring, endangle R: szó); - körívet rajzol, a sarokszalagtól a végtagig. az R sugárral egy koordinátájú pontot használva (x, y), mint kör középpontja.
ellipszis (x y.integer; .... Stängle endangle XR xy.word) - húz egy ellipszis ív, melynek központja az a pont (x, y), ellipszis XR. év; szalag és végtag - az ív kezdeti és végső szögei (a vízszintes tengelyből az óramutató járásával ellentétes irányban).
pieslice (x y.integer; .... Stängle endangle R szó) - épít körcikk árnyas keltetés és a jelenlegi kitöltési szín (setfillstyle megállapított eljárásokkal és setfillpattern). (x, y) a kör szektorának középpontjának koordinátái; szalag és végtag - a szektor kezdő és záró sarkai, az óramutató járásával ellentétes irányba a vízszintes tengelytől jobbra mutatva; R az ág sugara.
setcolor (color.word) - állítja be a vonal színét, a színparaméter értéke 0 és 15 között mozog.
setbkcolor (színes szó); - állítsa be a háttérszín színét. a háttérszínek száma 0 és 15 közé esik.
árvíz kitöltése (x.y. egész, határszöveg); - a zárt terület színeit a kitöltési stílus és a színek segítségével adja meg a kitöltési stílus és a készletminta-eljárások. A koordinátákkal (x, y) lévő pont a kiindulási pont az zárt területen belül, ahonnan az árnyékolás megkezdődik. A határon lévő színnel határolt terület festett.
setfillstyle (minta szó, színes szó); - állítja be a töltet színszínét és töltési stílusát (0-12 egész szám).
setfillpattern (mintázat fillpatterntype, színes szó); - beállítja a színt és a kitöltési mintát. amelyet a felhasználó a típus nyomtatványtípuson keresztül határoz meg az alábbiak szerint:
type fillpatterntype = array [1..8] byte;
outtextxy (x, y: egész; szöveges string: string); - A grafikus képernyő (x, y) pozíciójából megjeleníti a szövegparaméter stringstring értékét.
A stílusok és a festési minták dekódolása az eljárási készlet stílusának
A minta paramétere a következő értékeket veheti fel:
0 - EmptyFill - nincs festék (háttér), 1 - SolidFill - szilárd árnyékolás, 2 - LineFill - kikelnek vízszintes vonalak 3 - LtSlashFill - keltetés ferde vonalak //////, 4 - SlashFill - megvastagodott vonal ///// ////// 5 - BkSlashFill - \\\\\\\\\\\\ megvastagított vonal 6 - LtBkSlashFill - lineart \\\\\\\\\\\ 7 - HatchFill - töltési ++ ++++ 8 - XhatchFill - kitöltésével xxxxx, 9 - InterleaveFill - töltés ######## 10 - WideDotFill - zapolnnenie ritka pontozás 11 - CloseDotFill - kitöltésével gyakori pont 12 - UserFill - minta, a felhasználó által definiált . Az utóbbi esetben az árnyékolás típusának meghatározásához az "setfillpattern" eljárást kell használnia.
Grafikus módban különböző színeket állíthat be:
· A színszám megadása a 0 és 15 közötti számjegyek között;
· Adja meg a szín nevét angolul (idézőjelek nélkül);
6.1 táblázat. Színkódok és nevek a programozáshoz Pascalban
A Graph modul eljárásainak részletesebb leírását az M. függelék tartalmazza.
késleltetés (ms: szó); - az eljárás felfüggeszti a program végrehajtását ms milliszekundumokra.
keyPressed. logikai; - az eljárás TRUE értéket ad vissza. ha megnyomta a billentyűzet valamelyik gombját, és FALSE - ha nem.
ReadKey. char; - a funkció olvassa a gombnak megfelelő karaktert. Ha megnyomja a funkciógombot, a funkció első alkalommal veszi fel a # 0 értéket, a második alkalommal - a kulcs kódértékét. Ha nincs gomb megnyomva, a funkció megállítja a programot, és várja meg, hogy a billentyű lenyomjon.
A Crt modul eljárásainak teljesebb leírását az L. függelék tartalmazza.
Ezen modulok további eljárásai megtalálhatók a Pascal nyelvű irodalomban, valamint a jelen kézikönyv mellékleteiben.