Wednesday, December 9, 2009

Лекц №12

Ãðàôèê ãîðèì

Ñòàíäàðò ãàðàëòûí òºõººðºìæ áóþó äýëãýöýíä ºãºãäºë ãàðãàõàä òåêñò áà ãðàôèê ãýñýí ¿íäñýí 2 ãîðèìä äàðààõ áîëîìæòîé. Òåêñò ãîðèìä äýëãýöýíä ä¿ðñëýõ ìýäýýëëèéí íýãæ íü òýìäýãò áàéäàã áîë ãðàôèê ãîðèìä ìýäýýëëèéã ä¿ðñëýõ íýãæ íü öýã áàéäàã. Ãðàôèê ñèñòåìòýé àæèëëàõûí òóëä ýõëýýä ãðàôèê ãîðèì òîãòîîõ õýðýãòýé.

Ãðàôèê ãîðèì:
Äýëãýö¿¿ä íü èéì ÿëãààòàé áàéäãààñ áîëæ òýäãýýðèéã óäèðäàõ ïðîãðàìóóä ÿëãààòàé áàéäàã. ªºðººð õýëáýë òóõàéí äýëãýöèéí òºõººðºìæ áîëãîíû îíöëîãîîñ øàëòãààëæ òýäãýýðòýé õàðüöàõ àëãîðèòì, óäèðäàãäàõ ºãºãäºë¿¿ä ººð÷ëºãääºã. Ò¿¿íä òîõèðñîí ãîðèì òîãòîîõ õýðýãòýé. Ãîðèì òîãòîîñíîîð òóõàéí äýëãýöòýé àæèëëàõ áîëîìæòîé áîëäîã: Turbo ñè õýë íü äàðààõ òºðëèéí äýëãýö¿¿äòýé àæèëëàäàã.
 CGA-íýã äýëãýöèéã 2 áèòýýð ä¿ðñýëäýã.Äýëãýö áóþó 4 ºíãèéí öýã ä¿ðñëýõ øààðäëàãàòàé.
 EGA-16 ºíãº.
 HERCMONO- ìîíîõðîì áóþó 2 ºí㺠ä¿ðñýëíý.
 VGA-video graphics adapter.Öýãèéã 256 ºí㺺ð ä¿ðñýëíý.
 MCGA, IBM 8514 ãýõ ìýò äýëãýö¿¿ä àøèãëàäàã.
Äýëãýöèéí ºí㺠ä¿ðñëýõ ÷àäâàð áîëîí ìýäýýëëèéã ä¿ðñëýõ õýìæýý 2 õàðèëöàí óðâóó.
Íýã öýãèéí ºíãèéã ñàéí ä¿ðñëýõèéí òóëä îëîí áèò õýðýãòýé áîëíî. 1 öýãèéã îëîí áèòýýð òýìäýãëýõ ó÷èð õýìæýýñ áàãàñíà.Ó÷ñð íü òóõàéí äýëãýöèéí ºí㺠ä¿ðñëýõ ÷àäâàð , ìýäýýëëèéã ä¿ðñëýõ õýìæýýñ íü âèäåî ñàíàõ îéí õýìæýýíýýñ õàìààðíà.
Ñè õýëýíä ãðàôèê ãîðèì òîãòîîäîã ôóíêö íü:
init graph (int far *graphdriver, int far*graphmode, char far *pathtodriver);
graphdriver-ÿìàð òºðëèéí äýëãýö àøèãëàõûã çààæ ºãºõ õóâüñàã÷ .
graphmode-òóõàéí äýëãýö äýýð ÿìàð ãîðèì òîãòîîõûã çààíà.
Pathtodriver-òóõàéí ãðàôèê äýëãýöòýé àæèëëàõàä øààðäëàãàòàé ìýäýýëëèéã àãóóëñàí.
*BGI ôàéëóóä áàéðëàõ çàì .



initgraph ôóíêö
Ýíý ôóíêö íü *.bgi ôàéëààñ òóõàéí ãðàôèê ãîðèìòîé àæèëëàõàä øààðäëàãàòàé àëãîðèòì ìýäýýëë¿¿äèéã àâäàã. *.bgi ôàéëûã pathtodriver-ò çààñàí çàìààñ õàéãààä îëîõã¿é áîë èäýâõòýé ñàíãààñ õàéíà.
Ýíý ôóíêö íü ãðàôèç ãîðèìûí ºíãºíèé òîõèðãîî , èäýâõòýé áàéðëàëóóä , çààã÷èä , öîíõíû òîõèðãîîíû ìýäýýëë¿¿äèéã ¿¿ñãýæ , àíõíû óòãûã òîãòîîæ ºãäºã. Ýíý ôóíêöýä ÷ìàð äýëãýö àøèãëàõàà øóóä çààæ ºã÷ áîëíî. Ýñâýë ôóíêöýý𠺺ðººð íü òàíèóëæ áîëíî.

1.Øóóä çààæ ºãºõ .
int gdriver=VGA , gmode=VGAHi;
initgraph(&driver , &gmode, “c:\tc”);
2.Ôóíêöýý𠺺ðººð íü òàíèóëàõ
int gdriver=DETECT , gmode ;
initgraph(&gdriver ,&gmode , “ ”);
Graphresult , grapherrormsg ôóíêö
Graphresult –ôóíêö íü ¿éëäýë ã¿éöýòãýãäñýí òºëâèéã òîäîðõîéëíî.
Grapherromsg – ôóíêö íü àëäààíû òàéëáàð òýìäýãò ìºðèéã áóöààíà.
int gdriver=DETECT,gmode,er;
initgraph(&gdriver, &gmode, “ ”);
er=graphresult( );
if(er!=grOK) /* Àëäàà äàðààõ */
{ printf(“Graphics error :%s\n”, grapherrormsg(er));
exit (1);
}
Closegraph ôóíêö
Ýíý ôóíêöýýð ãðàôèê ãîðèìûí õààõ áóþó àøèãëàãäàæ áàéñàí á¿õ ºãºãäºë, ñàíàõ îéã ÷ºëººëºõ ¿éë àæèëëàãààã õýëíý. ̺í ãðàôèê ãîðèìûã õààñíààð òåêñò ãîðèìä øèëæèõ áà initgraph-ûã äóóäàõààñ ºìíº áàéñàí äýëãýöèéí ìýäýýëëèéã ñýðãýýíý.
int gdriver=DETECT, gmode;
initgraph(&gdriver , &mode, ” ”);

closegraph( );

Öýãòýé àæèëëàõ ôóíêö¿¿ä
 Putpixel( x,y,color )-õ,ó êîîðäèíàòàä color ºí㺺ð öýã çóðàõ
 Getpixel(x,y)- õ,ó êîîðäèíàòàä ÿìàð ºíãºòýé öýã áàéãààã îëîõ
 Lineto (x,y)-èäýâõòýé áàéðëàëààñ ýõëýí õ,ó öýã õ¿ðòýë øóëóóí òàòàõ
 Moveto(x,y)-èäýâõòýé áàéðëàëûã õ,ó öýãò òîãòîîõ
 Line(x1,y1,x2,y2)-õ1,ó1-ýýñ õ2, ó2 õ¿ðòýë øóëóóí òàòàõ .
Òýãø ºíöºãò¿¿ä çóðàõ
int gd=VGA , gm=VGAH1;
initgraph(&gd,&gm, “ ”);
setfillstyle(SLASH_FILL,7);
rectangle(0,0,94,94);--òýãø ºíöºãò
ba(4,4,90,90);--áºãëºõ , õýëáýð àâàõ
bar3d(104,4,190,90,5,5);--3 õýìæýýñò
getch(); çóçààí
closegraph();
Îëîí ºíöºãò çóðàõ
int a[10]={0,0,10,40,30,60,70,40,0,0};
int b[10]={5,5,10,32,25,50,65,39,5,5};
int gd=VGA, gm=VGAH1;
initgraph(&gd,&gm, “ ”);
setfillstyle(LINE_FILL,7);
drawpoly(5,a); fillpoly(5,b);
rectangle(100,10,150,60);
floodfill(102,12,15);
closegraph( );

Òîéðîã ýëèïñ , ìóðóé çóðàõ
int gd=VGA, gm=VGAH1;
initgraph(&gm,&gd, “ ”);
setfillstyle(LINE_FILL,7);
circle(60,60,50); floodfill(60,60,15);
arc(130,60,0,270,50);
getchar( ); ãðàäóñ
closegraph( );

int gd=VGA, gm=VGAH1;
initgraph(&gd,&gm, “ ”);
ellipse(60,60,0,360,50,30);
floodfill(60,60,15);
fillellipse(150,60,30,50);-- ä¿¿ðãýãäñýí ýëèïñ
pieslice(60,100,180,360,50);



ªí㺠áîëîí ïàëèòðòàé àæèëëàõ
#include
main( ) { int gd=DETECT , gm

1 comment: