Ãëàâíàÿ ñòðàíèöà Ñëó÷àéíàÿ ñòðàíèöà ÊÀÒÅÃÎÐÈÈ: ÀâòîìîáèëèÀñòðîíîìèÿÁèîëîãèÿÃåîãðàôèÿÄîì è ñàäÄðóãèå ÿçûêèÄðóãîåÈíôîðìàòèêàÈñòîðèÿÊóëüòóðàËèòåðàòóðàËîãèêàÌàòåìàòèêàÌåäèöèíàÌåòàëëóðãèÿÌåõàíèêàÎáðàçîâàíèåÎõðàíà òðóäàÏåäàãîãèêàÏîëèòèêàÏðàâîÏñèõîëîãèÿÐåëèãèÿÐèòîðèêàÑîöèîëîãèÿÑïîðòÑòðîèòåëüñòâîÒåõíîëîãèÿÒóðèçìÔèçèêàÔèëîñîôèÿÔèíàíñûÕèìèÿ×åð÷åíèåÝêîëîãèÿÝêîíîìèêàÝëåêòðîíèêà |
B¶ng c¸c gi¸ trÞ kh¶ dÜ cña mÉu
Chä n gi¶i mµu: §Ó thay ®æ i gi¶i mµu ®· ®î c ®Þ nh nghÜ a trong b¶ng trª n, ta sö dô ng hµm: void setpalete(int sè _thø _tù _mµu, int mµu); VÝ dô: C©u lÖ nh: setpalete(0, lightcyan); biÕ n mµu ®Ç u tiª n trong b¶ng mµu thµnh mµu xanh l nh¹ t. C¸ c mµu kh¸ c kh«ng bÞ ¶nh hë ng. · LÊ y gi¶i mµu hiÖ n thê i: + Hµm getcolor tr¶ vÒ mÇ u ®· x¸ c ®Þ nh b»ng thñ tô c setcolor ngay trí c nã. + Hµm getbkcolor tr¶ vÒ mÇ u ®· x¸ c ®Þ nh b»ng hµm setbkcolor ngay trí c nã. 10.2.2. VÏ vµ t«mµu: Cã thÓ chia c¸ c ®ê ng vµ h× nh thµnh bè n nhã m chÝ nh: · Cung trß n vµ h× nh trß n. · §ê ng gÊ p khó c vµ ®a gi¸ c. · §ê ng th¼ ng. · H× nh ch÷ nhË t. 10.2.2.1. Cung trß n vµ ®ê ng trß n: Nhã m nµy bao gå m: Cung trß n, ®ê ng trß n, cung elip vµ h× nh qu¹ t.
· Cung trß n: §Ó vÏ mé t cung trß n ta dï ng hµm: void arc(int x, int y, int gd, int gc, int r); Trong ®ã: (x, y) lµ to¹ ®é t©m cung trß n. gd lµ gã c ®Ç u cung trß n(0 ®Õ n 360 ®é). gc lµ gã c cuè i cung trß n (gd ®Õ n 360 ®é). r lµ b¸ n kÝ nh cung trß n. VÝ dô: VÏ mé t cung trß n cã t©m t¹ i (100, 50), gã c ®Ç u lµ 0, gã c cuè i lµ 180, b¸ n kÝ nh 30. arc(100, 50, 0, 180, 30); · §ê ng trß n: §Ó vÏ ®ê ng trß n ta dï ng hµm: void circle(int x, int y, int r); Trong ®ã: (x, y) lµ to¹ ®é t©m cung trß n. r lµ b¸ n kÝ nh ®ê ng trß n. VÝ dô: VÏ mé t ®ê ng trß n cã t©m t¹ i (100, 50) vµ b¸ n kÝ nh 30. circle(100, 50, 30); · Cung elip §Ó vÏ mé t cung elip ta dï ng hµm: void ellipse(int x, int y, int gd, int gc, int xr, int yr); Trong ®ã: (x, y) lµ to¹ ®é t©m cung elip. gd lµ gã c ®Ç u cung trß n(0 ®Õ n 360 ®é). gc lµ gã c cuè i cung trß n (gd ®Õ n 360 ®é). xr lµ b¸ n trô c n»m ngang. yr lµ b¸ n trô c th¼ ng ®ø ng. VÝ dô: VÏ mé t cung elip cã t©m t¹ i (100, 50), gã c ®Ç u lµ 0, gã c cuè i lµ 180, b¸ n trô c ngang 30, b¸ n trô c ®ø ng lµ 20. ellipse(100, 50, 0, 180, 30, 20);
· H× nh qu¹ t: §Ó vÏ vµ t«mµu mé t h× nh qu¹ t ta dï ng hµm: void pieslice(int x, int y, int gd, int gc, int r); Trong ®ã: (x, y) lµ to¹ ®é t©m h× nh qu¹ t. gd lµ gã c ®Ç u h× nh qu¹ t (0 ®Õ n 360 ®é). gc lµ gã c cuè i h× nh qu¹ t (gd ®Õ n 360 ®é). r lµ b¸ n kÝ nh h× nh qu¹ t. VÝ dô: Chng tr× nh dí i ®©y sÏ vÏ mé t cung trß n ë gã c phÇ n t thø nhÊ t, mé t cung elip ë gã c phÇ n t thø ba, mé t ®ê ng trß n vµ mé t h× nh qu¹ t quÐ t tõ 90 ®Õ n 360 ®é. # include " graphics.h" #include " stdio.h" #include " conio.h" main() { int md=0, mode; initgraph(& md, & mode, " C: \\TC\\BGI"); setbkcolor(BLUE); setcolor(YELLOW); setfillstyle(SOLID_FILL, RED);; arc(160, 50, 0, 90, 45); circle(160, 150, 45); pieslice(480, 150, 90, 360, 45); getch(); closegraph(); } 10.2.3. VÏ ®ê ng gÊ p khó c vµ ®a gi¸ c: · VÏ ®ê ng gÊ p khó c: Muè n vÏ ®ê ng gÊ p khó c ®i qua n ®iÓ m: (x1, y1), (x2, y2),...., (xn, yn) th× trí c hÕ t ta ph¶i g¸ n c¸ c to¹ ®é (xi, yi) cho mé t m¶ng a kiÓ u int nµo ®ã theo nguyª n t¾ c sau: To¹ ®é x1 g¸ n cho a[0] To¹ ®é y1 g¸ n cho a[1] To¹ ®é x2 g¸ n cho a[2] To¹ ®é y2 g¸ n cho a[3] .... To¹ ®é xn g¸ n cho a[2n-2] To¹ ®é yn g¸ n cho a[2n-1] Sau ®ã gä i hµm: drawpoly(n, a); NÕ u ®iÓ m cuè i cï ng (xn, yn) trï ng ví i ®iÓ m ®Ç u (x1, y1) th× ta nhË n ®î c mé t ®ê ng gÊ p khó c khÐ p kÝ n.
· T«mµu ®a gi¸ c: Gi¶ sö ta cã a lµ m¶ng ®· ®Ò cË p ®Õ n trong mô c trª n, khi ®ã ta gä i hµm: fillpoly(n, a); sÏ vÏ vµ t«mµu mé t ®a gi¸ c cã ®Ø nh lµ c¸ c ®iÓ m (x1, y1), (x2, y2),...., (xn, yn)
VÝ dô: VÏ mé t ®ê ng gÊ p khó c vµ hai ®ê ng tam gi¸ c. #include " graphics.h" #include " stdio.h" #include " conio.h" int poly1[]={5, 200, 190, 5, 100, 300}; int poly2[]={205, 200, 390, 5, 300, 300}; int poly3[]={405, 200, 590, 5, 500, 300, 405, 200}; main() { int md=0, mode; initgraph(& md, & mode, " C: \\TC\\BGI"); setbkcolor(CYAN); setcolor(YELLOW); setfillstyle(SOLID_FILL, MAGENTA); drawpoly(3, poly1); fillpoly(3, poly2); fillpoly(4, poly3); getch(); closegraph(); } · VÏ ®ê ng th¼ ng: §Ó vÏ ®ê ng th¼ ng nè i hai ®iÓ m bÊ t kú cã to¹ ®é (x1, y1) vµ (x2, y2) ta sö dô ng hµm sau: void line(int x1, int y1, int x2, int y2); Con ch¹ y ®å ho¹ gi÷ nguyª n vÞ trÝ. §Ó vÏ ®ê ng th¼ ng nè i tõ ®iÓ m con ch¹ y ®å ho¹ ®Õ n mé t ®iÓ m bÊ t cã to¹ ®é (x, y) ta sö dô ng hµm sau: void lineto(int x, int y); Con ch¹ y sÏ chuyÓ n ®Õ n vÞ trÝ (x, y). §Ó vÏ mé t ®ê ng th¼ ng tõ vÝ trÝ con ch¹ y hiÖ n t¹ i (gi¶ sö lµ ®iÓ m x, y) ®Õ n ®iÓ m cã to¹ ®é (x+dx, y+dy) ta sö dô ng hµm sau: void linerel(int dx, int dy); Con ch¹ y sÏ chuyÓ n ®Õ n vÞ trÝ (x+dx, y+dy). · Di chuyÓ n con ch¹ y ®å ho¹: §Ó di chuyÓ n con ch¹ y ®Õ n vÞ trÝ (x, y), ta sö dô ng hµm sau: void moveto(int x, int y);
· Chä n kiÓ u ®ê ng: Hµm void setlinestyle(int kiÓ u_®ê ng, int mÉ u, int ®é _dµy); t¸ c ®é ng ®Õ n nÐ t vÏ cñ a c¸ c thñ tô c vÏ ®ê ng line, lineto, linerel, circle, rectangle (hµm vÏ h× nh ch÷ nhË t, ta sÏ hä c trong phÇ n vÏ miÒ n ë dí i). Hµm nµy sÏ cho phÐ p ta x¸ c ®Þ nh ba yÕ u tè khi vÏ ®ê ng th¼ ng, ®ã lµ: KiÓ u ®ê ng, bÒ dµy vµ mÉ u tù t¹ o. D¹ ng ®ê ng do tham sè kiÓ u_®ê ng x¸ c ®Þ nh. B¶ng dí i ®©y cho c¸ c gi¸ trÞ kh¶ dÜ cñ a kiÓ u_®ê ng:
BÒ dµy cñ a ®ê ng vÏ do tham sè ®é _dµy x¸ c ®Þ nh,. b¶ng dí i ®©y cho c¸ c gi¸ trÞ kh¶ dÜ cñ a ®é _dµy:
MÉ u tù t¹ o: NÕ u tham sè thø nhÊ t lµ USERBIT_LINE th× ta cã thÓ t¹ o ra mÉ u ®ê ng th¼ ng b»ng tham sè mÉ u. VÝ dô ta xÐ t ®o¹ n chng tr× nh: int pattern = 0x1010; setlinestile(USERBIT_LINE, pattern, NORM_WIDTH); line(0, 0, 100, 200); Gi¸ trÞ cñ a pattern trong hÖ 16 lµ 1010, trong hÖ 2 lµ: 0001 0000 0001 0000 Bit 1 sÏ cho ®iÓ m s¸ ng, bit 0 sÏ lµm t¾ t ®iÓ m ¶nh. VÝ dô: Chng tr× nh vÏ mé t ®ê ng gÊ p khó c b»ng c¸ c ®o¹ n th¼ ng. §ê ng gÊ p khó c ®i qua c¸ c ®Ø nh sau: (20, 20), (620, 20), (620, 180), (20, 180) vµ (320, 100) #include " graphics.h" #include " stdio.h" #include " conio.h" main() { int mh=0, mode; initgraph(& mh, & mode, " C: \\TC\\BGI"); setbkcolor(BLUE); setcolor(YELLOW); setlinestyle(Solid-line, 0, THICK_WIDTH); moveto(320, 100); /* con ch¹ y ë vÞ trÝ (320, 100) */ line(20, 20, 620, 20); /* con ch¹ y vÉ n ë vÞ trÝ (320, 100) */ linerel(-300, 80); lineto(620, 180); lineto(620, 20); getch(); closegraph(); } 10.2.4. VÏ ®iÓ m, miÒ n: · VÏ ®iÓ m: Hµm: void putpixel(int x, int y, int color); sÏ t«®iÓ m (x, y) theo mÇ u x¸ c ®Þ nh bë i color.
Hµm: unsigned getpixel(int x, int y); sÏ tr¶ vÒ sè hiÖ u mÇ u cñ a ®iÓ m ¶nh ë vÞ trÝ (x, y). Chó ý: NÕ u ®iÓ m nµy cha ®î c t«mµu bë i c¸ c hµm vÏ hoÆ c hµm putpixel (mµ chØ mí i ®î c t¹ o mµu nÒ n bë i setbkcolor) th× hµm cho gi¸ trÞ 0.
· T«miÒ n: §Ó t«mµu cho mé t miÒ n nµo ®ã trª n mµn h× nh, ta dï ng hµm sau: void floodfill(int x, int y, int border); ë ®©y: (x, y) lµ to¹ ®é cñ a mé t ®iÓ m nµo ®ã gä i lµ ®iÓ m gieo. Tham sè border chø a m· cñ a mµu. Sù ho¹ t ®é ng cñ a hµm floodfill phô thué c vµo gi¸ trÞ cñ a x, y, border vµ tr¹ ng th¸ i mµn h× nh. + Khi trª n mµn h× nh cã mé t ®ê ng cong khÐ p kÝ n hoÆ c ®ê ng gÊ p khó c khÐ p kÝ n mµ m· mµu cñ a nã b»ng gi¸ trÞ cñ a border th×: - NÕ u ®iÓ m gieo (x, y) n»m trong miÒ n nµy th× miÒ n gií i h¹ n phÝ a trong ®ê ng sÏ ®î c t«mµu. - NÕ u ®iÓ m gieo (x, y) n»m ngoµi miÒ n nµy th× miÒ n phÝ a ngoµi ®ê ng sÏ ®î c t«mµu. + Trong trê ng hî p khi trª n mµn h× nh kh«ng cã ®ê ng cong nµo nh trª n th× c¶ mµn h× nh sÏ ®î c t«mµu.
VÝ dô: VÏ mé t ®ê ng trß n mµu ®á trª n mµn h× nh mµu xanh. To¹ ®é (x, y) cñ a ®iÓ m gieo ®î c n¹ p tõ bµn phÝ m. Tuú thué c gi¸ trÞ cô thÓ cñ a x, y chng tr× nh sÏ t«mµu vµng cho h× nh trß n hoÆ c phÇ n mµn h× nh bª n ngoµi h× nh trß n. #include " graphics.h" #include " stdio.h" main() { int mh=mode=0, x, y; printf(" \nVao toa do x, y: "); scanf(" %d%d", & x, & y); initgraph(& mh, & mode, " "); if (graphresult! = grOk) exit(1); setbkcolor(BLUE); setcolor(RED); setfillstyle(11, YELLOW); circle(320, 100, 50); moveto(1, 150); floodfill(x, y, RED); closegraph(); }
10.2.5. H× nh ch÷ nhË t: · Hµm: void rectangle(int x1, int y1, int x2, int y2); sÏ vÏ mé t h× nh ch÷ nhË t cã c¸ c c¹ nh song song ví i c¸ c c¹ nh cñ a mµn h× nh. To¹ ®é ®Ø nh tr¸ i trª n cñ a h× nh ch÷ nhË t lµ (x1, y1) vµ to¹ ®é ®Ø nh ph¶i dí i cñ a hµnh ch÷ nhË t lµ (x2, y2).
· Hµm: void bar(int x1, int y1, int x2, int y2); sÏ vÏ vµ t«mµu mé t h× nh ch÷ nhË t. To¹ ®é ®Ø nh tr¸ i trª n cñ a h× nh ch÷ nhË t lµ (x1, y1) vµ to¹ ®é ®Ø nh ph¶i dí i cñ a hµnh ch÷ nhË t lµ (x2, y2).
· Hµm: void bar3d(int x1, int y1, int x2, int y2, int depth, int top); sÏ vÏ mé t khè i hé p ch÷ nhË t, mÆ t ngoµi cñ a nã lµ h× nh ch÷ nhË t x¸ c ®Þ nh bë i c¸ c to¹ ®é (x1, y1), (x2, y2). H× nh ch÷ nhË t nµy ®î c t«mµu th«ng qua hµm setfillstyle. Tham sè depth x¸ c ®Þ nh sè ®iÓ m ¶nh trª n bÒ s©u cñ a khè i 3 chiÒ u. Tham sè top cã thÓ nhË n c¸ c gi¸ trÞ 1 hay 0 vµ khè i 3 chiÒ u tng ø ng sÏ cã n¾ p hoÆ c kh«ng.
VÝ dô: Chng tr× nh dí i ®©y t¹ o nª n mé t h× nh ch÷ nhË t, mé t khè i h× nh ch÷ nhË t vµ mé t h× nh hé p cã n¾ p: #include " graphics.h" main() { int mh=mode=0; initgraph(& mh, & mode, " "); if (graphresult! = grOk) exit(1); setbkcolor(GREEN); setcolor(RED); setfillstyle(CLOSE_DOT_FILL, YELLOW); rectangle(5, 5, 300, 160); bar(3, 175, 300, 340); bar3d(320, 100, 500, 340, 100, 1); closegraph(); } 10.2.6. Cö a sæ (Viewport): · ThiÕ t lË p viewport: Viewport lµ mé t vï ng ch÷ nhË t trª n mµn h× nh ®å ho¹. §Ó thiÕ t lË p viewport ta dï ng hµm: void setviewport(int x1, int y1, int x2, int y2, int clip); trong ®ã (x1, y1) lµ to¹ ®é gã c trª n bª n tr¸ i, (x2, y2) lµ to¹ ®é gã c dí i bª n ph¶i. Bè n gi¸ trÞ nµy v× thÕ ph¶i tho¶ m·n: 0 £ x1 £ x2 0 £ y1 £ y2 Tham sè clip cã thÓ nhË n mé t trong hai gi¸ trÞ: clip=1 kh«ng cho phÐ p vÏ ra ngoµi viewport. clip=0 cho phÐ p vÏ ra ngoµi viewport. VÝ dô: setviewport(100, 50, 200, 150, 1); LË p nª n mé t vï ng viewport h× nh ch÷ nhË t cã to¹ ®é gã c tr¸ i cao lµ (100, 50) vµ to¹ ®é gã c ph¶i thÊ p lµ (200, 150) (lµ to¹ ®é trí c khi ®Æ t viewport). Chó ý: Sau khi lË p viewport, ta cã hÖ to¹ ®é mí i mµ gã c trª n bª n tr¸ i sÏ cã to¹ ®é (0, 0). · NhË n diÖ n viewport hiÖ n hµnh: §Ó nhË n viewport hiÖ n thê i ta dï ng hµm: void getviewsetting(struct viewporttype *vp); ë ®©y kiÓ u viewporttype ®· ®î c ®Þ nh nghÜ a nh sau: struct viewporttype { int left, top, right, bottom; int clip; }; · Xã a viewport: Sö dô ng hµm: void clearviewport(void);
· Xo¸ mµn h× nh, ®a con ch¹ y vÒ t¹ o ®é (0, 0) cñ a mµn h× nh: Sö dô ng hµm: void cleardevice(void); · To¹ ®é ©m dng: Nhê sö dô ng viewport cã thÓ viÕ t c¸ c chng tr× nh ®å ho¹ theo to¹ ®é ©m dng. Muè n vË y ta thiÕ t lË p viewport vµ cho clip b»ng 0 ®Ó cã thÓ vÏ ra ngoµi gií i h¹ n cñ a viewport. Sau ®©y lµ ®o¹ n chng tr× nh thù c hiÖ n c«ng viÖ c trª n: int xc, yc; xc=getmaxx()/2; yc=getmaxy()/2; setviewport(xc, yc, getmaxx(), getmaxy(), 0); Nh thÕ, mµn h× nh sÏ ®î c chia lµm bè n phÇ n ví i to¹ ®é ©m dng nh sau: PhÇ n t tr¸ i trª n: x ©m, y ©m. x: tõ -getmaxx()/2 ®Õ n 0. y: tõ -getmaxy()/2 ®Õ n 0. PhÇ n t tr¸ i dí i: x ©m, y dng. x: tõ -getmaxx()/2 ®Õ n 0. y: tõ 0 ®Õ n getmaxy()/2. PhÇ n t ph¶i trª n: x dng, y ©m. x: tõ 0 ®Õ n getmaxx()/2. y: tõ -getmaxy()/2 ®Õ n 0. PhÇ n t ph¶i dí i: x dng, y dng. x: tõ 0 ®Õ n getmaxx()/2. y: tõ 0 ®Õ n getmaxy()/2.
VÝ dô: Chng tr× nh vÏ ®å thÞ hµm sin x trong hÖ trô c to¹ ®é ©m dng. Hoµnh ®é x lÊ y c¸ c gi¸ trÞ tõ -4p ®Õ n 4p. Trong chng tr× nh cã sö dô ng hai hµm mí i lµ settextjustify vµ outtextxy ta sÏ ®Ò cË p ngay trong phÇ n sau. #include " graphics.h" #include " conio.h" #include " math.h" #define TYLEX 20 #define TYLEY 60 main() { int mh=mode=DETECT; int x, y, i; initgraph(mh, mode, " "); if (graphresult! =grOK) exit(1); setviewport(getmaxx()/2, getmaxy()/2, getmaxx(), getmaxy(), 0); setbkcolor(BLUE); setcolor(YELLOW); line(-getmaxx()/2, 0, getmaxx()/2, 0); line(0, -getmaxy()/2, 0, getmaxy()/2, 0); settextjustify(1, 1); setcolor(WHITE); outtextxy(0, 0, " (0, 0)"); for (i=-400; i< =400; ++i) { x=floor(2*M_PI*i*TYLEX/200); y=floor(sin(2*M_PI*i/200)*TYLEY); putpixel(x, y, WHITE); } getch(); closegraph(); } 10.3. Xö lý v¨ n b¶n trª n mµn h× nh ®å ho¹: · HiÓ n thÞ v¨ n b¶n trª n mµn h× nh ®å ho¹: Hµm: void outtext(char *s);
cho hiÖ n chuç i ký tù (do con trá s trá tí i) t¹ i vÞ trÝ con trá ®å ho¹ hiÖ n thê i. Hµm: void outtextxy(int x, int y, char *s);
cho hiÖ n chuç i ký tù (do con trá s trá tí i) t¹ i vÞ trÝ (x, y).
VÝ dô: Hai c¸ ch viÕ t dí i ®©y: outtextxy(50, 50, " Say HELLO"); vµ moveto(50, 50); outtext(" Say HELLO");
cho cï ng kÕ t qu¶.
· Sö dô ng c¸ c Fonts ch÷: C¸ c Fonts ch÷ n»m trong c¸ c tË p tin *.CHR trª n ®Ü a. C¸ c Fonts nµy cho c¸ c kÝ ch thí c vµ kiÓ u ch÷ kh¸ c nhau, chó ng sÏ ®î c hiÓ n thÞ lª n mµn h× nh b»ng c¸ c hµm outtext vµ outtextxy. §Ó chä n vµ n¹ p Fonts ta dï ng hµm: void settextstyle(int font, int direction, int charsize); Tham sè font ®Ó chä n kiÓ u ch÷ vµ nhË n mé t trong c¸ c h»ng sau: DEFAULT_FONT=0 TRIPLEX_FONT=1 SMALL_FONT=2 SANS_SERIF_FONT=3 GOTHIC_FONT=4 Tham sè derection ®Ó chä n hí ng ch÷ vµ nhË n mé t trong c¸ c h»ng sau: HORIZ_DIR=0 v¨ n b¶n hiÓ n thÞ theo hí ng n»m ngang tõ tr¸ i qua ph¶i. VERT_DIR=1 v¨ n b¶n hiÓ n thÞ theo hí ng th¼ ng ®ø ng tõ dí i lª n trª n. Tham sè charsize lµ hÖ sè phã ng to cñ a ký tù vµ cã gi¸ trÞ trong kho¶ng tõ 1 ®Õ n 10. Khi charsize=1, font hiÓ n thÞ trong h× nh ch÷ nhË t 8*8 pixel. Khi charsize=2 font hiÓ n thÞ trong h× nh ch÷ nhË t 16*16 pixel. ............ Khi charsize=10, font hiÓ n thÞ trong h× nh ch÷ nhË t 80*80 pixel. C¸ c gi¸ trÞ do settextstyle lË p ra sÏ gi÷ nguyª n tí i khi gä i mé t settextstyle mí i.
VÝ dô: C ¸ c dß ng lÖ nh: settextstyle(3, VERT_DIR, 2); outtextxy(30, 30, " GODS TRUST YOU"); sÏ hiÓ n thÞ t¹ i vÞ trÝ (30, 30) dß ng ch÷ GODS TRUST YOU theo chiÒ u tõ dí i lª n trª n, font ch÷ chä n lµ SANS_SERIF_FONT vµ cì ch÷ lµ 2.
· §¹ t vÞ trÝ hiÓ n thÞ cñ a c¸ c x©u ký tù cho bë i outtext vµ outtextxy: Hµm settextjustify cho phÐ p chØ ®Þ nh ra ni hiÓ n thÞ v¨ n b¶n cñ a outtext theo quan hÖ ví i vÞ trÝ hiÖ n t¹ i cñ a con ch¹ y vµ cñ a outtextxy theo quan hÖ ví i to¹ ®é (x, y); Hµm nµy cã d¹ ng sau: void settextjustify(int horiz, int vert); Tham sè horiz cã thÓ lµ mé t trong c¸ c h»ng sè sau: LEFT_TEXT=0 (V¨ n b¶n xuÊ t hiÖ n bª n ph¶i con ch¹ y). CENTER_TEXT (ChØ nh t©m v¨ n b¶n theo vÞ trÝ con ch¹ y). RIGHT_TEXT (V¨ n b¶n xuÊ t hiÖ n bª n tr¸ i con ch¹ y). Tham sè vert cã thÓ lµ mé t trong c¸ c h»ng sè sau: BOTTOM_TEXT=0 (V¨ n b¶n xuÊ t hiÖ n phÝ a trª n con ch¹ y). CENTER_TEXT=1 (ChØ nh t©m v¨ n b¶n theo vÞ trÝ con ch¹ y). TOP_TEXT=2 (V¨ n b¶n xuÊ t hiÖ n phÝ a dí i con ch¹ y). VÝ dô: settextjustify(1, 1); outtextxy(100, 100, " ABC"); sÏ cho dß ng ch÷ ABC trong ®ã ®iÓ m (100, 100) sÏ n»m dí i ch÷ B.
· BÒ ré ng vµ chiÒ u cao v¨ n b¶n: ChiÒ u cao: Hµm: textheight(char *s); cho chiÒ u cao (tÝ nh b»ng pixel) cñ a chuç i do con trá s trá tí i.
VÝ dô 1: Ví i font bit map vµ hÖ sè phã ng ®¹ i lµ 1 th× textheight(" A") ch gi¸ trÞ lµ 8. VÝ dô 2: #include " stdio.h" #include " graphics.h" main() { int mh=mode=DETECT, y, size; initgraph(mh, mode, " C: \\TC\\BGI"); y=10; settextjustify(0, 0); for (size=1; size< 5; ++size) { settextstyle(0, 0, size); outtextxy(0, y, " SACRIFICE"); y+=textheight(" SACRIFICE")+10; } getch(); closegraph(); }
BÒ ré ng: Hµm: textwidth(char *s); cho bÒ ré ng chuç i (tÝ nh theo pixel) mµ con trá s trá tí i dù a trª n chiÒ u dµi chuç i, kÝ ch thí c font ch÷, hÖ sè phã ng ®¹ i.
|