Ñòóäîïåäèÿ

Ãëàâíàÿ ñòðàíèöà Ñëó÷àéíàÿ ñòðàíèöà

ÊÀÒÅÃÎÐÈÈ:

ÀâòîìîáèëèÀñòðîíîìèÿÁèîëîãèÿÃåîãðàôèÿÄîì è ñàäÄðóãèå ÿçûêèÄðóãîåÈíôîðìàòèêàÈñòîðèÿÊóëüòóðàËèòåðàòóðàËîãèêàÌàòåìàòèêàÌåäèöèíàÌåòàëëóðãèÿÌåõàíèêàÎáðàçîâàíèåÎõðàíà òðóäàÏåäàãîãèêàÏîëèòèêàÏðàâîÏñèõîëîãèÿÐåëèãèÿÐèòîðèêàÑîöèîëîãèÿÑïîðòÑòðîèòåëüñòâîÒåõíîëîãèÿÒóðèçìÔèçèêàÔèëîñîôèÿÔèíàíñûÕèìèÿ×åð÷åíèåÝêîëîãèÿÝêîíîìèêàÝëåêòðîíèêà






Ch­ng 10






§å ho¹

Ch­ng nµy sÏ gií i thiÖ u c¸ c hµm vµ thñ tô c ®Ó khë i ®é ng hÖ ®å ho¹, vÏ c¸ c ®­ê ng vµ h× nh c b¶n nh­ h× nh trß n, cung elip, h× nh qu¹ t, ®­ê ng g·y khó c, ®a gi¸ c, ®­ê ng th¼ ng, h× nh ch÷ nhË t, h× nh hé p ch÷ nhË t....

C¸ c hµm vµ thñ tô c ®å ho¹ ®­î c khai b¸ o trong file graphics.h.

10.1. Khë i ®é ng ®å ho¹:

Mô c ®Ý ch cñ a viÖ c khë i ®é ng hÖ thè ng ®å ho¹ lµ x¸ c ®Þ nh thiÕ t bÞ ®å ho¹ (mµn h× nh) vµ mode ®å ho¹ sÏ sö dô ng trong ch­ng tr× nh. §Ó lµm c«ng viÖ c nµy, ta cã hµm sau:

void initgraph(int *graphdriver, int graphmode, char *driverpath);

Trong ®ã:

· driverpath lµ x©u ký tù chØ ®­ê ng dÉ n ®Õ n th­ mô c chø a c¸ c tË p tin ®iÒ u khiÓ n ®å ho¹.

· graphdriver cho biÕ t mµn h× nh ®å ho¹ sö dô ng trong ch­ng tr× nh.

· graphmode cho biÕ t mode ®å ho¹ sö dô ng trong ch­ng tr× nh.

B¶ng d­í i ®©y cho c¸ c gi¸ trÞ kh¶ dÜ cñ a graphdriver vµ graphmode:

graphdriver detect (0) graphmode §é ph©n gi¶i
CGA (1) CGAC0 (0) CGAC1 (1) CGAC2 (2) CGAC3 (3) CGAHi (4) 320x200 320x200 320x200 320x200 640x200
MCGA (2) MCGA0 (0) MCGA1 (1) MCGA2 (2) MCGA3 (3) MCGAMed (4) MCGAHi (5) 320x200 320x200 320x200 320x200 640x200 640x480
EGA (3) EGAL0 (0) EGAHi (1) 640x200 640x350
EGA64 (4) EGA64LO (0) EGA64Hi (1) 640x200 640x350
EGAMONO (5) EGAMONOHi (0) 640x350
VGA (9) VGALO (0) VGAMED (1) VGAHI (2) 640x200 640x350 640x480
HERCMONO (7) HERCMONOHI 720x348
ATT400 (8) ATT400C0 (0) ATT400C1 (1) ATT400C2 (2) ATT400C3 (3) ATT400MED (4) ATT400HI (5) 320x200 320x200 320x200 320x200 640x400 640x400
PC3270 (10) PC3270HI (0) 720x350
IBM8514 (6) PC3270LO (0) PC3270HI (1) 640x480 256 mÇ u 1024x768 256 mÇ u

Chó ý:

· B¶ng trª n cho ta c¸ c h»ng vµ gi¸ trÞ cñ a chó ng mµ c¸ c biÕ n graphdtriver vµ graphmode cã thÓ nhË n. Ch¼ ng h¹ n h»ng DETECT cã gi¸ trÞ 0, h»ng VGA cã gi¸ trÞ 9, h»ng VGALO cã gi¸ trÞ 0 vv...

Khi lË p tr× nh ta cã thÓ thay thÕ vµo vÞ trÝ t­ng ø ng cñ a chó ng trong hµm tª n h»ng hoÆ c gi¸ trÞ cñ a h»ng ®ã.

VÝ dô:

Gi¶ sö m¸ y tÝ nh cã mµn h× nh VGA, c¸ c tË p tin ®å ho¹ chø a trong th­ mô c C: \TC \BGI, khi ®ã ta khë i ®é ng hÖ thè ng ®å ho¹ nh­ sau:

#include " graphics.h"

main()

{

int mh=VGA, mode=VGAHI; /*HoÆ c mh=9, mode=2*/

initgraph(& mh, & mode, " C: \\TC\\BGI");

/* V× kÝ tù \ trong C lµ kÝ tù ®Æ c biÖ t nª n ta ph¶i gÊ p ®«i nã */

}

· B¶ng trª n cß n cho thÊ y ®é ph©n gi¶i cß n phô thué c c¶ vµo mµn h× nh vµ mode. VÝ dô nh­ trong mµn h× nh EGA nÕ u dï ng EGALo th× ®é ph©n gi¶i lµ 640x200 (Hµm getmaxx() cho gi¸ trÞ cù c ®¹ i cñ a sè ®iÓ m theo chiÒ u ngang cñ a mµn h× nh. Ví i mµn h× nh EGA trª n: 639, Hµm getmaxy() cho gi¸ trÞ cù c ®¹ i cñ a sè ®iÓ m theo chiÒ u dä c cñ a mµn h× nh. Ví i mµn h× nh EGA trª n: 199).

· NÕ u kh«ng biÕ t chÝ nh x¸ c kiÓ u mµn h× nh ®ang sö dô ng th× ta g¸ n cho biÕ n graphdriver b»ng DETECT hay gi¸ trÞ 0. Khi ®ã, kÕ t qu¶ cñ a initgraph sÏ lµ:

KiÓ u mµn h× nh ®ang sö dô ng ®­î c ph¸ t hiÖ n, gi¸ trÞ cñ a nã ®­î c g¸ n cho biÕ n graphdriver.

Mode ®å ho¹ ë ®é ph©n gi¶i cao nhÊ t ø ng ví i mµn hµnh ®ang sö dô ng cò ng ®­î c ph¸ t hiÖ n vµ trÞ sè cñ a nã ®­î c g¸ n cho biÕ n graphmode.

Nh­ vË y dï ng h»ng sè DETECT ch¼ ng nh÷ ng cã thÓ khë i ®é ng ®­î c hÖ thè ng ®å ho¹ ví i mµn h× nh hiÖ n cã theo mode cã ®é ph©n gi¶i cao nhÊ t mµ cß n gió p ta x¸ c ®Þ nh kiÓ u mµn h× nh ®ang sö dô ng.

VÝ dô:

Ch­ng tr× nh d­í i ®©y x¸ c ®Þ nh kiÓ u mµn h× nh ®ang sö dô ng:

#include " graphics.h"

#include " stdio.h"

main()

{

int mh=0, mode;

initgraph(& mh, & mode, " C: \\TC\\BGI");

printf(" \n Gia tri so cua man hinh la: %d", mh);

printf(" \n Gia tri so mode do hoa la: %d", mode);

closegraph();

}

· NÕ u chuç i dï ng ®Ó x¸ c ®Þ nh driverpath lµ chuç i rç ng th× ch­ng tr× nh dÞ ch sÏ t× m kiÕ m c¸ c file ®iÒ u khiÓ n ®å ho¹ trª n th­ mô c chñ (Th­ mô c hiÖ n thê i).

10.2. C¸ c hµm ®å ho¹:

10.2.1. MÉ u vµ mµu:

· §Æ t mµu nÒ n:

§Ó ®Æ t mµu cho nÒ n ta dï ng thñ tô c sau:

void setbkcolor(int mµu);

· §Æ t mµu ®­ê ng vÏ:

§Ó ®Æ t mµu vÏ ®­ê ng ta dï ng thñ tô c sau:

void setcolor(int mµu);

· §Æ t mÉ u (kiÓ u) t«vµ mµu t«:

§Ó ®Æ t mÉ u (kiÓ u) t«vµ mµu t«ta dï ng thñ tô c sau:

void setfillstyle(int mÉ u, int mµu);

Trong c¶ ba tr­ê ng hî p mµu x¸ c ®Þ nh m· cñ a mµu.

C¸ c gi¸ trÞ kh¶ dÜ cñ a mµu cho bë i b¶ng d­í i ®©y:


Ïîäåëèòüñÿ ñ äðóçüÿìè:

mylektsii.su - Ìîè Ëåêöèè - 2015-2024 ãîä. (0.011 ñåê.)Âñå ìàòåðèàëû ïðåäñòàâëåííûå íà ñàéòå èñêëþ÷èòåëüíî ñ öåëüþ îçíàêîìëåíèÿ ÷èòàòåëÿìè è íå ïðåñëåäóþò êîììåð÷åñêèõ öåëåé èëè íàðóøåíèå àâòîðñêèõ ïðàâ Ïîæàëîâàòüñÿ íà ìàòåðèàë