Elõre: Általános
könyvtári függvények Fel: Fontosabb
könyvtári függvények Vissza: Hangeffektusok
létrehozása
Függvények grafikus
üzemmódban
x,y középpontú körívet rajzol kezdõ
és végszög között.
#include <graphics.h>
void far arc(int x, int y, int stangle,
int endangle, int radius);
Paraméterek:
x,y |
a körív középpontja |
stangle |
a kezdõszög (fokban) |
endangle |
a végszög (fokban) |
radius |
a sugár |
Megjegyzés: Ha a kezdõszögnek 0 és a végszögnek
360 fokot adunk, akkor az eljárás teljes kört rajzol.
A szögeket az óramutató járásával
ellentétes irányban kell megadni, 0 fok 3 órának,
90 fok 12 órának felel meg.
Téglalapot rajzol és befesti az aktuális színnel
és mintával.
#include <graphics.h>
void far bar(int left, int top,
int right, int bottom);
Paraméterek:
left, top |
a téglalap bal felsõ sarka |
right, bottom |
a téglalap jobb alsó sarka |
Megjegyzés: A setcolor, setfillstyle és
a setlinestyle függvények által korábban
beállított színnel és mintával rajzolja,
illetve tölti ki a téglalapot.
Téglatestet rajzol és befesti az aktuális színnel
és mintával.
#include <graphics.h>
void far bar3d(int left, int top, int right,
int bottom, int depth, int topflag);
Paraméterek:
left, top |
a téglalap bal felsõ sarka |
right, bottom |
a téglalap jobb alsó sarka |
depth |
a téglatest mélysége |
topflag |
ha nem nulla, a téglatest teteje zárt, nulla esetén
a téglatest tetejére újabb téglatest illeszthetõ |
Megjegyzés: A korábban definiált színnel
és mintával rajzol és fest téglatestet.
x,y középpontú kört rajzol.
#include <graphics.h>
void far circle(int x, int y, int radius);
Paraméterek:
x,y |
a kör középpontjának koordinátái |
radius |
a kör sugara |
Megjegyzés: A kör rajzolása az aktuális
színnel történik. A linestyle paraméter
nem hatásos az ív, kör, ellipszis és ellipszis
ív rajzolásánál, csak a thickness
paraméter használható.
Törli a grafikus képernyõt.
#include <graphics.h>
void far cleardevice(void);
Megjegyzés: Törli a képernyõt beszínezve
a háttérszínnel és a kurzort a (0,0) pozícióba
mozgatja.
Törli az aktuális grafikus ablakot.
#include <graphics.h>
void far clearviewport(void);
Megjegyzés: Törli a aktuális grafikus ablakot
és a kurzort a képernyõ ablak (0,0) pozíciójába
mozgatja.
Lezárja a grafikus üzemmódot.
#include <graphics.h>
void far closegraph(void);
Megjegyzés: A closegraph a grafikus üzemmód
inicializálása elõtti képernyõ üzemmódot
állítja vissza.
Ellenõrzi a hardvert és meghatározza, hogy milyen
grafikus meghajtót és módot lehet használni.
#include <graphics.h>
void far detectgraph(int far *graphdriver,
int far *graphmode);
Megjegyzés: Megvizsgálja a grafikus kártyát
és kiválasztja azt az üzemmódot, amelyik a legjobb
felbontást nyújtja. Ha az adott hardverkonfigurációban
a grafika használata nem lehetséges, ezt a *graphdriver
paraméter, illetve a grahpresult függvény -2-es
visszatérési értéke jelzi. A lehetséges
grafikus üzemmód kontsansok az alábbiak:
konstansok |
numerikus érték |
DETECT |
0 |
CGA |
1 |
MCGA |
2 |
EGA |
3 |
EGA64 |
4 |
EGAMONO |
5 |
IBM8514 |
6 |
HERCMONO |
7 |
ATT400 |
8 |
VGA |
9 |
PC3270 |
10 |
A DETECT érték hatására a grafikus
rendszer érzékeli a grafikus kártya típusát.
Minden más érték esetén az adott grafikus kártya
legjobb felbontású üzemmódja kerül kiválasztásra.
A megadott vonaltípussal és színnel pontsorozatot
egyenessel köt össze.
#include <graphics.h>
void far drawpoly(int numpoints,
int far *polypoints);
Paraméterek:
numpoints |
a koordináták száma |
polypoints |
mutató az x,y pontpárokat tartalmazó tömbre |
Megjegyzés: Egy n pontból álló
zárt poligon esetén n+1 koordinátapárt
kell megadni, ahol az n+1-edik koordinátapárnak meg
kell egyeznie a 0-adikkal. Ha hiba történik a poligon rajzolása
alatt a graphresult -6 értékkel tér vissza.
x,y középpontú ellipszis ívet rajzol kezdõ
és végszög között.
#include <graphics.h>
void far ellipse(int x, int y, int stangle,
int endangle, int xradius,
int yradius);
Paraméterek:
x,y |
középpont kezdõ koordinátái |
stangle |
kezdeti szög |
endangle |
végszög |
xradius |
vízszintes tengely |
yradius |
függõleges tengely |
Megjegyzés: A szögek az óramutató járásával
ellentétes irányúak. A 0 fok 3 órának,
a 90 fok 12 órának felel meg. Ha 0 kezdõ- és
360 fok végszöget adunk, teljes ellipszist kapunk.
Rajzol és befest egy ellipszist.
#include <graphics.h>
void far fillellipse(int x, int y, int xradius,
int yradius);
Paraméterek:
x,y |
az ellipszis középpontja |
xradius |
a vízszintes tengely |
yradius |
a függõleges tengely |
Megjegyzés: Rajzol egy x, y középpontú,
xradius vizszintes és yradius függõleges
tengelyû ellipszist és befesti az aktuális színnel
és mintával.
Rajzol és befest egy poligont.
#include <graphics.h>
void far fillpoly(int numpoints,
int far *polypoints);
Paraméterek:
numpoints |
a poligon pontpárainak száma |
polypoints |
mutató az x,y pontpárokat tartalmazó tömbre |
Megjegyzés: Aktuális színnel és vonaltípussal
megrajzolja a poligon körvonalát és befesti az aktuális
mintával és színnel.
Aktuális mintával befesti az adott színû
vonallal zárt területet.
#include <graphics.h>
var far floodfill(int x, int y, int border);
Paraméterek:
x,y |
a zárt terület egy belsõ pontjának koordinátái |
border |
szín |
Megadja az utoljára rajzolt ív kezdõ- és
végkoordinátáinak értékét.
#include <graphics.h>
void far getarccoords(struct arccoordstype
far *arccoords);
Megjegyzés: Visszatér az arccoordtype struktúra
típusú *arccoords változóban elhelyezett
értékekkel, ahol
struct arccoordstype
{
int x, y;
int xstart, ystart, xend, yend;
}
Itt
x,y |
a középpont koordinátái |
xstart, ystart |
az ív kezdõpontjának koordinátái |
xend, yend |
az ív végpontjának koordinátái |
Ezeknek az adatoknak az ismeretében lehet például
egy ellipszis ív végpontjából egy vonalat rajzolni.
getaspectratio |
graphics.h |
|
Visszaadja az aktuális grafikus mód vizszintes/függõleges
képarányát.
#include <graphics.h>
void far getaspectratio(int far *xasp,
int far *yasp);
Paraméterek: *xasp, *yasp: képarány
összetevõk (faktorok)
Megjegyzés: Az y arányfaktor (*yasp) minden
grafikus kártya esetén 10000-hez van normálva, kivéve
a VGA-t. Az *xasp (x arányfaktor) kisebb, mint az *yasp,
mivel egy képpont (pixel) magassága és szélessége
nem egyforma. VGA esetén 'négyzet alakú' egy pixel,
emiatt *xasp egyenlõ *yasp-vel.
A háttér aktuális színét adja vissza.
#include <graphics.h>
int far getbkcolor(void)
Megjegyzés: Visszatérési értéke
a háttérszín, amely 0 - 15-ig változhat, ez
függ a grafikus kártyától és az aktuális
grafikus módtól.
A rajzoló színt adja vissza.
#include <graphics.h>
int far getcolor(void);
Megjegyzés: Az utolsó sikeres setcolor hívás
színének értékét adja vissza. A rajzolás
színe 0-15-ig változhat, ez függ a grafikus kártyától
és az aktuális grafikus módtól.
getdefaultpalette |
graphics.h |
|
A paletta (színskála) értékeit adja vissza.
#include <graphics.h>
struct palettetype *far getdefaultpalette(void);
Megjegyzés: A palettetype típusú struktúrára
mutató pointert kapunk vissza. A pointer által megcímzett
struktúrában kapjuk meg az initgraph-ban definiált
színskála értékeket.
Visszatér egy sztringre mutató pointerrel, melyben a
grafikus kártya nevét adja vissza.
#include <graphics.h>
char *far getdrivername(void);
Megjegyzés: Az initgraph aktiválása
után az aktív grafikus kártya nevével tér
vissza.
getfillpattern |
graphics.h |
|
A felhasználó által elõzõleg definiált
alakzat kitöltõ minta azonosító kódját
vissza.
#inlcude <graphics.h>
void far getfillpattern(char far *pattern);
Paraméter: pattern - egy pointer, amely egy 8 byte-os
szekvenciára mutat.
Megjegyzés: A setfillpattern által definiált
mintát a getfillpattern betölti egy 8 byte-os területre,
amit a pattern címez meg.
getfillsettings |
graphics.h |
|
Információt ad az aktuális festõmintáról
és színrõl.
#include <graphics.h>
void far getfillsettings(struct fillsettingstype
far *fillinfo);
Megjegyzés: A getfillsettings betölti a fillsettingstype
strukturára mutató pointert a fillinfo pointer változóba,
amely információt ad az aktális kitöltõ
mintáról és színrõl. A struktúra
a graphics.h file-ban az alábbi:
struct fillsettingstype
{
int pattern; /* az aktualis minta */
int color; /* az aktualis szin */
}
Kitöltõminták
Név (konstans) |
Érték |
Leírás |
EMPTY_FILL |
0 |
háttérszínnel fest |
SOLID_FILL |
1 |
egyenletes, gyenge tónus |
LINE_FILL |
2 |
vízszintes vonalas minta |
LTSLASH_FILL |
3 |
jobbra dõlt vonalas minta |
SLASH_FILL |
4 |
jobbra dõlt vastag vonalas minta |
BKSLASH_FILL |
5 |
balra dõlt vastag vonalas minta |
LTBKSLASH_FILL |
6 |
balra dõlt vonalas minta |
HATCH_FILL |
7 |
kockás minta |
XHATCH_FILL |
8 |
dõlt kockás minta |
INTERLEAVE_FILL |
9 |
sûrûn pontozott minta |
WIDE_DOT_FILL |
10 |
ritkán pontozott minta |
CLOSE_DOT_FILL |
11 |
közepesen pontozott |
USER_FILL |
12 |
felhasználó által definiált |
Az aktuális grafikus üzemmódot adja meg.
#include <graphics.h>
int far getgraphmode(void);
Megjegyzés: A getgraphmode megadja az initgraph
vagy setgraphmode által beállított grafikus
üzemmódot. Ennek értéke 0-5 között
változhat, ez függ az aktuális grafikus kártyától.
A megadott képmezõt elmenti egy bufferba.
#include <graphics.h>
void far getimage(int left, int top, int right,
int bottom, void far *bitmap);
Paraméterek:
left, top |
a tartomány bal felsõ sarka |
right, bottom |
a tartomány jobb alsó sarka |
*bitmap |
a bufferre mutató pointer |
Megjegyzés: A getimage a képmezõ megadott
területét elmenti a bitmap pointer által mutatott memória
területre.A memória területnek az elsõ két
adata a tartomány szélességét és magasságát
tartalmazza, ezután következnek a képmezõ adatai.
getlinesettings |
graphics.h |
|
A vonal típusát, mintáját és vastagságát
adja vissza.
#include <graphics.h>
void far getlinesettings(struct linesettingstype
far *lineinfo);
Megjegyzés: A getlinesettings betölti a linesettinsgtype
struktúra pointerét a lineinfo pointer változóba,
amely a vonal tulajdonságait szolgáltatja:
struct linesettingstype
{
int linestyle;
unsigned upattern;
int thickness;
}
A vonal típusa:
SOLID_LINE |
0 |
normál vonal |
DOTTED_LINE |
1 |
pont vonal |
CENTER_LINE |
2 |
közép vonal |
DASHED_LINE |
3 |
szaggatott vonal |
USERBIT_LINE |
4 |
felhasználó által definiált vonal |
A vonal vastagsága
NORM_WIDTH |
1 |
normál vonal (1 pixel széles) |
THICK_WIDTH |
3 |
vastag vonal (3 pixel széles) |
Megadja a maximálisan használható színek
számát.
#include <graphics.h>
int far getmaxcolor(void);
Megjegyzés: Például 256K-s EGA kártya
esetén a visszatérési érték 15, mert
a setcolor maximálisan 0 - 15 érvényes színt
tud kiválasztani. A CGA finom grafika és a Hercules egyszínû
grafika esetén a visszatérési érték
1, mert ebben az esetben a szín 0 és 1 lehet.
A legmagasabb grafikus üzemmód-számot adja meg.
#include <graphics.h>
int far getmaxmode(void);
Megjegyzés: A legkisebb érték 0.
A maximálisan használható x koordináta
értéket adja meg.
#include <graphics.h>
int far getmaxx(void);
Megjegyzés: Például a CGA kártya 320*200
felbontású grafikus üzemmódja esetén a
getmaxx 319 értékkel tér vissza.
A maximálisan használható y koordináta
értéket adja meg.
#include <graphics.h>
int far getmaxy(void);
Megjegyzés: Például a CGA kártya 320*200
felbontású grafikus üzemmódja esetén a
getmaxy 199 értékkel tér vissza.
A grafikus eszköz meghajtó nevére mutató
pointerrel tér vissza.
#include <graphics.h>
char *far getmodename(int mode_number);
Paraméter:
mode_number grafikus mód
száma
Megadja a grafikus meghajtó üzemmódjainak tartományát.
#include <graphics.h>
void far getmoderange(int graphdriver,
int far *lomode,
int far *himode);
Paraméterek:
graphdriver |
grafikus meghajtó |
lmode, hmode |
az üzemmód tartomány alsó és felsõ
határára mutató pointerek |
Megjegyzés: *lomode tartalmazza a grafikus mód
alsó, *himode pedig a felsõ határát.
Érvénytelen grafikus meghajtó megadása esetén
mindkét visszatérési érték -1 lesz.
Információt ad a palettáról.
#include <graphics.h>
void far getpalette(struct palettetype far *palette);
Megjegyzés: A getpalette feltölti a palettetype
típusú palette struktúrát az
aktuálisan használt paletta jellemzõivel.
A palettetype a graphics.h-ban van definiálva
#define MAXCOLORS 15
struct palettetype
{
unsigned char size;
signed char colors[MAXCOLORS+1];
}
A size a színkészletben használható
színek száma, melyet az aktuális grafikus mód
határoz meg.
getpalettesize |
graphics.h |
|
A színtábla (paletta) méretét adja meg.
#include <graphics.h>
int far getpalettesize(void);
Megjegyzés: A visszatérési érték
megadja az aktuális grafikus módban használható
színek számát. Például színes
üzemmódban használt EGA kártya esetén
ez az érték 16 lesz.
Az (x,y) koordinátájú képpont színértékét
adja vissza.
#include <graphics.h>
unsigned far getpixel(int x, int y);
Paraméterek:
x, y a képpont
koordinátái
gettextsettings |
graphics.h |
|
Információt ad a beállított írásképrõl.
#include <graphics.h>
void far gettextsettings(struct textsettingstype
far *texttypeinfo);
Megjegyzés: A gettextsettings betölti a textsettingstype
struktúra címét atexttypeinfo pointer
változóba. Ez a struktúra tájékoztatást
ad a használt karakterkészlet típusáról,
irányáról, méretérõl és
beállítási helyzetérõl.
struct textsettingstype
{
int font; /* karakterkeszlet tipusa */
int direction; /* irany */
int charsize; /* meret */
int horiz; /* vizszintes helyzet */
int vert; /* fuggoleges helyzet */
}
getviewsettings |
graphics.h |
|
Az aktuális ablak (viewport) adatait adja meg.
#include <graphics.h>
void far getviewsettings(struct viewporttype
far *viewport);
Megjegyzés: A getviewsettings kitölti a viewport
pointer által mutatott viewporttype struktúrát.
struct viewporttype
{
int left,top,right,bottom;
int clip;
}
A (left, top) és (right, bottom)
koordinátapontok az aktív ablak méretét szolgáltatják,
melyek abszolút képernyõ koordinátákban
értendõk. A clip mezõ értéke
határozza meg az ablakban megjelenõ rajz vágását.
Ha clip értéke pozítív, akkor van
vágás, ebben az esetben a rajzoknak csak az ablakba esõ
része látható, nulla esetén nincs vágás.
Az aktuális grafikus kurzor x koordinátáját
adja meg.
#include <graphics.h>
int far getx(void);
Megjegyzés: A megadott x koordináta relatív
érték az ablakhoz képest, ami azt jelenti, hogy ha
a képernyõn egy ablakot jelöltünk ki, akkor az
ahhoz viszonyított koordinátákat kapjuk vissza.
Az aktuális grafikus kurzor y koordinátáját
adja meg.
#include <graphics.h>
int far gety(void);
Megjegyzés: A megadott y koordináta relatív
érték az ablakhoz képest.
Alapállapotba állítja vissza a grafikus üzemmódot.
#include <graphics.h>
void far graphdefaults(void);
Megjegyzés: Az alapállapot beállítás
a következõ:
-
-
-
az ablak a teljes képernyõt jelenti,
-
-
-
a kurzort a (0,0) pozícióba helyezi,
-
-
-
beállítja a paletta színét, a háttérszínt
és a rajzszínt a default-ra, valamint a festõ típusra,
mintára és a szöveginformációra.
Visszatér a hibaüzenetet tartalmazó sztringre mutató
pointerrel.
#include <graphics.h>
char *far grapherrormsg(int errorcode);
Megjegyzés: A hibakódot a graphresult függvény
szolgáltatja.
A grafikus memória felszabadítása.
#include <graphics.h>
void far _graphfreemem(void far *ptr,
unsigned size);
Paraméterek:
*ptr |
a grafikus memória területre mutató pointer |
size |
a felszabadítandó memória mérete |
Megjegyzés: A grafikus könyvtár hívja
a _graphfreemem függvényt, hogy felszabadítsa
_graphgetmem által korábban lefoglalt memóriát.
Magunk is vezérelhetjük a grafikus könyvtár memória
kezelését egyszerûen, ha definiáljuk a _graphfreemem
függvény saját verzióját. Ennek a rutinnak
az alapértelmezés szerinti verziója csak a free
függvényt hívja. Csak BORLAND C++-ban létezik.
A grafikus memória lefoglalása.
#include <graphics.h>
void far *far _graphgetmem(unsigned size);
Paraméter:
size a felszabadítandó
memória mérete
Megjegyzés: A grafikus könyvtár (nem a felhasználói
program) hívja a _graphgetmem függgvényt, hogy
memóriaterületet foglaljon le belsõ bufferek, grafikus
meghajtók és karakterkészletek számára.
Magunk is vezérelhetjük a grafikus könyvtár memória
kezelését egyszerûen, ha definiáljuk a _graphgetmem
függvény saját verzióját. Ennek a rutinnak
az alapértelmezés szerinti verziója csak a malloc
függvényt hívja. Csak BORLAND C++-ban létezik.
Az utoljára végrehajtott grafikus mûvelet hibakódját
adja meg.
#include <graphics.h>
int far graphresult(void);
Megjegyzés: A hibakód (graphresult) táblázata:
grOk |
Nincs hiba |
grNoinitGraph |
Nincs .bgi file installálva |
grNotDetected |
Nincs grafikus kártya |
grFileNotFound |
A .bgi file hiányzik |
grInvalidDriver |
Érvénytelen grafikus meghajtó |
grNoLoadMem |
Kevés a memória driver számára |
grNoScanMem |
Kevés a memória a vizsgálathoz |
grNoFloodMem |
Kevés a memória a kitöltéshez |
grFontNotFound |
Nem létezõ karakterkészlet file |
grNoFontMem |
Kevés a memória a font számára |
grInvalidMode |
A kiválasztott grafikus mód érvénytelen |
grError |
Grafikus hiba |
grIOError |
Grafikus I/O hiba |
grInvalidFont |
Érvénytelen karakterkészlet file |
grInvalidFontNum |
Érvénytelen karakterkészlet azonosító |
grInvalidDeviceNum |
Érvénytelen egység szám |
grInvalidVersion |
Érvénytelen file verzió |
Adott téglalap alakú tartomány méretét
adja meg byte-okban.
#include <graphics.)
unsigned far imagesize(int left, int top,
int right, int bottom);
Paraméterek:
left, top |
a téglalap bal felsõ sarka |
right, bottom |
a téglalap jobb alsó sarka |
Megjegyzés: Ha nagyobb memória szükséges
a tárolásra, mint 64 Kbyte, akkor az imagesize függvény
-1 értékkel tér vissza.
Inicializálja a grafikus rendszert.
#include <graphics.h>
void far initgraph(int far *graphdriver,
int far *graphmode,
char far *pathtodriver);
Paraméterek:
graphdriver |
a grafikus kártya típusa |
graphmode |
grafikus mód |
pathtodriver |
az aktuális .bgi file-t tartalmazó hozzáférési
út (path) |
Megjegyzés: A graphdriver paraméternél
a DETECT érték megadása esetén a grafikus
kártya típusa és a grafikus mód automatikusan
kerül kiválasztásra. Ha az aktuális .bgi
file az aktív DOS könyvtárban van, akkor a pathtodriver
paraméter értéke "" (üres sztring) lehet.
installuserdriver |
graphics.h |
|
A felhasználó által írt BGI meghajtó
installálása a grafikus rendszerbe.
#include <graphics.h>
int far installuserdriver(char far *name,
int huge (*detect)(void));
Paraméterek:
name |
az új meghajtó (.bgi) file neve |
detect |
pointer egy szabadon választott függvényre, amely
automatikusan érzékeli az új meghajtót |
installuserfont |
graphics.h |
|
Betölt egy új karakterkészletet, amely nincs beépítve
a .BGI rendszerbe.
#include <graphics.h>
int far installuser(char far *name)
Paraméter:
name az útvonal neve,
ahol az új karakterkészlet van.
Megjegyzés: Egyszerre csak 20 karakter installálható.
Hibajelzést kapunk, ha a belsõ tábla tele van, ilnyenkor
a függvény a grError (-11) értékkel
tér vissza.
Egy egyenest rajzol két adott pont között.
#include <graphics.h>
void far line(int x1, int y1, int x2, int y2);
Paraméterek:
x1, y1 |
kezdõ koordináta |
x2, y2 |
vég koordináta |
Megjegyzés: A két koordinátapont között
adott színnel, vonaltípussal és vonalvastagsággal
egy egyenest rajzol.
Egyenes szakaszt rajzol az aktuális plot-pozíciótól
relatív koordinátákkal megadott pontig.
#include <graphics.h>
void far linerel(int dx, int dy);
Paraméterek:
dx |
távolság x irányban |
dy |
távolság y irányban |
Megjegyzés: Az egyenest a korábban definiált
színnel, vonaltípussal és vonalvastagsággal
rajzolja meg.
Egyenest rajzol az aktuális plot-pozíciótól
az abszolút koordinátákkal adott pontig.
#include <graphics.h>
void far lineto(int x, int y);
Paraméterek:
x, y az egyenes végpontja
Megjegyzés: Az egyenest a korábban definiált
színnel, vonaltípussal és vonalvastagsággal
rajzolja meg.
Az aktuális plot-pozíciót áthelyezi a relatív
koordinátákkal adott helyre.
#include <graphics.h>
void far moverel(int dx, int dy);
Paraméterek:
dx |
távolság x irányban |
dy |
távolság y irányban |
A plot-pozíciót az abszolút koordinátákkal
adott pontba helyezi át.
#include <graphics.h>
void far moveto(int x, int y);
Paraméterek:
x, y az új plot-pozíció
abszolút koordinátái
Az aktuális plot-pozíciótól kezdve szöveget
ír ki.
#include <graphics.h>
void far outtext(char far *textstring);
Paraméter:
textstring a kiírandó szövegre
mutaó pointer
Megjegyzés: A szöveget a korábban beállított
betûtípussal, méretben, valamint a kijelölt irányban
(vízszintes, függõleges) írja ki a plot-pozíciótól
kezdve.
Szöveget ír ki a megadott (x,y) ponttól kezdve.
#include <graphics.h>
void far outtextxy(int x, int y,
char far *textstring);
Paraméterek:
x,y |
az adott pont |
textstring |
a kiírandó szöveg |
Megjegyzés: A korábban beállított betûtípussal,
méretben, valamint a kijelölt irányban (vízszintes,
függõleges) szöveget ír ki az adott (x,
y) ponttól kezdve.
Egy körcikket rajzol és befest.
#include <graphics.h>
void far pieslice(int x, int y, int stangle,
int endangle, int radius);
Paraméterek:
x,y |
középpont koordinátái |
stangle |
kezdeti szög |
endangle |
végszög |
radius |
sugár |
Megjegyzés: Befest egy (x, y) középpontú,
radius sugarú, stangle kezdõszögû
és endangle végszögû körcikket a
korábban definiált színnel és mintával.
A kezdõ- és végszöget az óramutató
járásával ellentéstes irányban kell
megadni, ahol a 0 fok 3 óránál van, a 90 fok pedig
12 óránál van.
Korábban tárolt képmezõ ráhelyezése
a képernyõre.
#include <graphics.h>
void far putimage(int left, int top,
void far *bitmap, int op);
Paraméterek:
left, top |
a képernyõn a téglalap alakú tartomány
bal felsõ sarokpontja |
bitmap |
pointer, amely a képmezõt tartalmazó területre
mutat |
op |
bináris mûvelet a kihelyezendõ tartomány
pontjai és a képernyõ pontjai között |
Megjegyzés: A tárolt képmezõ és
a képernyõ képpontjai között az alábbi
bináris mûveletek definiálhatók:
COPY+PUT |
0 |
rámásolja |
XOR_PUT |
1 |
kizáró vagy kapcsolat |
OR_PUT |
2 |
vagy kapcsolat |
AND_PUT |
3 |
és kapcsolat |
NOT_PUT |
4 |
a képmezõ inverzét másolja |
Egy képpontot rajzol az (x,y) pontban.
#include <graphics.h>
void far putpixel(int x, int y, int color);
Paraméterek:
x,y |
a pont koordinátái |
color |
a pont színe |
Megjegyzés: Az (x, y) pontban a képpontot
az adott színnel rajzolja.
Téglalapot rajzol.
#include <graphics.h>
void far rectangle(int left, int top,
int right, int bottom);
Paraméterek:
left, top |
a téglalap bal felsõ sarka |
right, bottom |
a téglalap jobb alsó sarka |
Megjegyzés: A téglalapot az aktuális színnel
és vonaltípussal rajzolja.
restorecrtmode |
graphics.h |
|
Visszaállítja azt a képernyõ üzemmódot,
amelyik az initgraph aktiválása elõtt volt
érvényben.
#include <graphics.h>
void far restorecrtmode(void);
Megjegyzés: A restorecrtmode visszaállítja
az eredeti video módot, amelyet az initgraph érzékelt.
A setgraphmode függvény visszakapcsolja a grafikus
üzemmódot. A textmode függvényt csak akkor
használhatjuk, ha szöveges üzemmódban van a képernyõ
és különbözõ text módokat akarunk váltani.
Egy ellipszis ívet rajzol és befest.
#include <graphics.h>
void far sector(int x, int y,
int stangle, int endangle,
int xradius, int yradius);
Paraméterek:
x,y |
középpont koordinátái |
stangle |
kezdõszög |
endangle |
végszög |
xradius |
vízszintes tengely |
yradius |
függõleges tengely |
Új lapot nyit meg a grafikus output számára.
#include <graphics>
void far setactivepage(int page);
Paraméter
page lap száma
Megjegyzés: Több lap használatát csak
az EGA (256K), a VGA és a Hercules grafikus kártya teszi
lehetõvé. A setvisualpage függvény hívásával
váltogathatjuk a látható lapokat, ez segítséget
nyújt az animáció számára.
Változtatja a paletta színeit.
#include <graphics.h>
void far setallpalette(struct palettetype far *palette);
Paraméter:
palette egy palettetype típusú
struktúrára mutató pointer.
Megjegyzés: EGA/VGA paletta színeket lehet változtatni
a setallpalette függvénnyel. A palettetype
struktúra a következõ:
#define MAXCOLOR 15
struct palettetype
{
unsigned char size;
signed char colors[MAXCOLORS+1];
}
Lehetséges színek:
BLACK |
0 |
EGA_BLACK |
0 |
BLUE |
1 |
EGA_BLUE |
1 |
GREEN |
2 |
EGA_GREEN |
2 |
CYAN |
3 |
EGA_CYAN |
3 |
RED |
4 |
EGA_RED |
4 |
MAGENTA |
5 |
EGA_MAGENTA |
5 |
BROWN |
6 |
EGA_LIGHTGRAY |
7 |
LIGHTGRAY |
7 |
EGA_BROWN |
20 |
DARKGRAY |
8 |
EGA_DARGRAY |
56 |
LIGHTBLUE |
9 |
EGA_LIGHTBLUE |
57 |
LIGHTGREEN |
10 |
EGA_LIGHTGREEN |
58 |
LIGHTCYAN |
11 |
EGA_LIGHTCYAN |
59 |
LIGHTRED |
12 |
EGA_LIGHTRED |
60 |
LIGHTMAGENTA |
13 |
EGA_LIGHTMAGENTA |
61 |
YELLOW |
14 |
EGA_YELLOW |
62 |
WHITE |
15 |
EGA_WHITE |
63 |
A tömbben a szín helyén -1 van, ott a paletta színe
nem változik.
setaspectratio |
graphics.h |
|
Változtatja a figyelembe veendõ vizszintes/függõleges
képarányt. |
#include <graphics.h>
void far setaspectratio(int xasp, int yasp);
Paraméterek:
xasp, yasp aránytényezõk
Megjegyzés: Ha a beépített képaránnyal
egy kör torzult, akkor a hibát szoftver úton kiküszöbölhetjük,
ha az arányokat változtatjuk.
Beállítja a háttér színét.
#include <graphics.h>
void far setbkcolor(int color);
Paraméter:
color egy szín a palettából,
amely lehet egy szám (0-15), vagy a szín szimbólikus
neve
Megjegyzés: A color paraméterrel az alábbi
módon állíthatjuk be kékre a háttér
szinét
setbkcolor(BLUE);
A háttér színként az alábbiakat használhatjuk:
0 |
BLACK |
8 |
DARKGRAY |
1 |
BLUE |
9 |
LIGHTBLUE |
2 |
GREEN |
10 |
LIGHTGREEN |
3 |
CYAN |
11 |
LIGHTCYAN |
4 |
RED |
12 |
LIGHTRED |
5 |
MAGENTA |
13 |
LIGHTMAGENTA |
6 |
LIGHTGRAY |
14 |
YELLOW |
7 |
BROWN |
15 |
WHITE |
Beállítja a rajzolás színét.
#include <graphics.h>
void far setcolor(int color);
Paraméter
color egy szín a palettából
Megjegyzés: A color paraméter értéke
0-tól getmaxcolor által visszaadott értékéig
változhat, amely a rajzolás színét állítja
be. EGA esetén 0-tól 15-ig változhat.
A rajzolás színei CGA esetén
Paletta |
|
Pixel szín-értéke |
|
mód |
|
1 |
2 |
3 |
|
0 |
CGA_LIGHTGREEN |
CGA_LIGHTRED |
CGA_YELLOW |
CGAC0 |
1 |
CGA_LIGHTCYAN |
CGA_LIGHTMAGENTA |
CGA_WHITE |
CGAC1 |
2 |
CGA_GREEN |
CGA_RED |
CGA_BROWN |
CGAC2 |
3 |
CGA_CYAN |
CGA_MAGENTA |
CGA_LIGHTGRAY |
CGAC3 |
A CGA grafikus kártya esetén egyszerre csak négy
színt használhatunk, amelybõl egy a háttérszín.
A 4 grafikus módból azt a módot válasszuk ki,
amelynek a rajzolási színértékeit akarjuk felhasználni.
Természetesen a módokat váltogathatjuk. Például
CGAC0 módban a paletta 4 színt tartalmaz. Ezek:
a háttérszín, halvány zöld, halvány
piros és sárga. Ebben a módban a setcolor(CGA_YELLOW)
hívás sárgát választja ki rajzolási
színnek.
setfillpattern |
graphics.h |
|
Bitképet definiál a USER_FILL festõminta
számára (lásd setfillstyle)
#include <graphics.h>
void far setfillpattern(char far *upattern,
int color);
Paraméterek:
upattern |
pointer egy 8 byte hosszú memória területre, ez
tartalmazza a mintát |
color |
szín |
Beállítja a festõmintát és a színt.
#include <graphics.h>
void far setfillstyle(int pattern, int color);
Paraméterek:
Megjegyzés: A mintaválasztékot lásd
a getfillsettings függvény ismertetésénél.
setgraphbufsize |
graphics.h |
|
Változtatja a belsõ grafikus buffer méretét.
#include <graphics.h>
unsigned far setgraphbufsize(unsigned bufsize);
Paraméter:
bufsize a buffer mérete
Megjegyzés: A beépített buffer mérete
4096 byte. Ha kisebb is elég, akkor memória területet
lehet megtakarítani. Ha a buffer kevésnek bizonyul, -7 hibajelzést
kapunk. A beépített buffer mérete egy 650 töréspontú
poligon befestéséhez elegendõ. Ha ennél több
töréspontú poligont akarunk befesteni, akkor meg kell
növelni a buffer méretét, hogy elkerüljük
a buffer túlcsordulását.
Beállítja a grafikus módot és törli
a képernyõt.
#include <graphics.h>
void far setgraphmode(int mode);
Paraméter:
mode a beépített grafikus
kártya érvényes módja
Beállítja a vonal típusát és vastagságát.
#include <graphics.h>
void far setlinestyle(int linestyle,
unsigned upattern,
int thickness);
Paraméterek:
linestyle |
vonaltípus |
upattern |
vonaltípus minta |
thickness |
vonalvastagság |
Megjegyzés: A linesettingstype struktúra
a graphics.h file-ban van definiálva:
struct linesettingstype
{
int linestyle;
unsigned upattern;
int thickness;
}
A linestyle paraméter értéke az alábbi
lehet:
SOLID_LINE |
0 |
teljes vonal |
DOTTED_LINE |
1 |
pontozott vonal |
CENTER_LINE |
2 |
középvonal |
DASHED_LINE |
3 |
szaggatott vonal |
USERBIT_LINE |
4 |
bitmintával megadott |
A thickness paraméter az alábbi lehet:
NORM_WIDTH |
1 |
normál vastagságú (1 pixel széles) |
THICK_WIDTH |
3 |
vastag vonal (3 pixel széles) |
Egy paletta színt változtat.
#include <graphics.h>
void far setpalette(int colornum, int color);
Paraméterek:
colornum |
szín sorszáma a táblázatban |
color |
szín |
Megjegyzés: Ha a colornum értéke 0
és a color értéke GREEN, akkor az
elsõ elem zöld lesz. A beépített színkonstansok
sorszámát lásd a setallpalette függvény
leírásánál.
settextjustify |
graphics.h |
|
Szöveg helyzetének beállítása az outtext
és az outtextxy eljárások számára.
#include <graphics.h>
void far settextjustify(int horiz, int vert);
Paraméterek:
horiz |
vízszintes beállítás |
vert |
függõleges beállítás |
Megjegyzés: A horiz és a vert paraméterek
az alábbi értékeket vehetik fel:
név |
érték |
leírás |
paraméter |
LEFT_TEXT |
0 |
balra |
horiz |
CENTER_TEXT |
1 |
középre |
horiz, vert |
RIGHT_TEXT |
2 |
jobbra |
horiz |
BOTTOM_TEXT |
0 |
aljára |
vert |
TOP_TEXT |
2 |
tetejére |
vert |
Beállítja az aktuális karakterkészlet típusát
és méretét.
#include <graphics.h>
void far settextstyle(int font, int direction,
int charsize);
Paraméterek:
font |
a karakterkészlet neve |
direction |
az írás iránya |
charsize |
karakterek mérete |
Megjegyzés: A font paraméter az alábbi
értékeket veheti fel
DEFAULT_FONT |
0 |
8*8 pixeles karakterekl |
TRIPLEX_FONT |
1 |
3 vonalas karakterek |
SMALL_FONT |
2 |
kisméretû karakterek |
SANS_SERIF_FONT |
3 |
talp nélküli karakterek |
GOETHIC_FONT |
4 |
gótikus karakterek |
A direction paraméter az alábbi értékeket
veheti fel:
HORIZ_DIR |
0 |
balról jobbra |
VERT_DIR |
1 |
alulról felfelé |
A charsize paraméter lehetséges értékei:
1 |
8*8 bitmintájú lesz a karakter |
2 |
16*16 bitmintájú lesz a karakter |
... |
|
10 |
maximum |
0 |
vagy a beépített 4-es faktor,
vagy a felhasználó által definiált méretû |
setusercharsize |
graphics.h |
|
A karakter szélességének és magasságának
változtatása.
#include <graphics.h>
void far setusercharsize(int multx, int divx,
int multy, int divy);
Paraméterek:
multx, divx |
multx / divx szorzódik a beépített szélességgel |
multy, divy |
multy / divy szorzódik a beépített magassággal |
Ablakot jelöl ki a grafikus képernyõn.
#include <graphics.h>
void far setviewport(int left, int top, int right,
int bottom, int clip);
Paraméterek:
left, top |
az ablak bal felsõ sarka |
right, bottom |
az ablak jobb alsó sarka |
clip |
pozitív esetén a kivágást bekapcsolja,
nulla esetén kikapcsolja |
Megjegyzés: A továbbiakban minden koordinátapont
az adott ablakhoz lesz viszonyítva. A clip paraméter
határozza meg, hogy az ablakból kinyúló vonalak
látszanak-e.
Láthatóvá teszi az adott grafikus ablakot.
#include <graphics.h>
void far setvisualpage(int page);
Paraméter:
page a lap száma
Megjegyzés: Több lap használata csak EGA (256K),
VGA és Hercules grafikus kártya esetén lehetséges.
Beállítja az írásmódot a vonalrajzolás
számára.
#include <graphics.h>
void far setwritemode(int mode);
Paraméter:
mode kétfajta lehet, az alábbi
konstansok közül választhatunk:
COPY_PUT |
0 |
másolás |
XOR_PUT |
1 |
kizáró vagy |
Megjegyzés: A COPY_PUT a MOV assembler
utasítást használja fel, a vonal felülírja
a képernyõt. Az XOR_PUT az XOR utasítást
hajtja végre a vonal pontjai és a képernyõ
pontjai között. Két egymásután következõ
XOR utasítás a vonalat letörli és a
képernyõn az eredeti kép marad meg.
Visszatér a szöveg képpontokban mért magasságával.
#include <graphics.h>
int far textheight(char far *textstring);
Paraméter:
textstring szövegre mutató
pointer
Visszatér a szöveg képpontokban mért szélességével.
#include <graphics.h>
int far textwidth(char far *textstring);
Paraméter:
textstring szövegre mutató
pointer
Elõre: Általános
könyvtári függvények Fel: Fontosabb
könyvtári függvények Vissza: Hangeffektusok
létrehozása