Ãëàâíàÿ ñòðàíèöà Ñëó÷àéíàÿ ñòðàíèöà ÊÀÒÅÃÎÐÈÈ: ÀâòîìîáèëèÀñòðîíîìèÿÁèîëîãèÿÃåîãðàôèÿÄîì è ñàäÄðóãèå ÿçûêèÄðóãîåÈíôîðìàòèêàÈñòîðèÿÊóëüòóðàËèòåðàòóðàËîãèêàÌàòåìàòèêàÌåäèöèíàÌåòàëëóðãèÿÌåõàíèêàÎáðàçîâàíèåÎõðàíà òðóäàÏåäàãîãèêàÏîëèòèêàÏðàâîÏñèõîëîãèÿÐåëèãèÿÐèòîðèêàÑîöèîëîãèÿÑïîðòÑòðîèòåëüñòâîÒåõíîëîãèÿÒóðèçìÔèçèêàÔèëîñîôèÿÔèíàíñûÕèìèÿ×åð÷åíèåÝêîëîãèÿÝêîíîìèêàÝëåêòðîíèêà |
Chng 10
§å ho¹ Chng 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 chng 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 chng tr× nh. · graphmode cho biÕ t mode ®å ho¹ sö dô ng trong chng tr× nh. B¶ng dí i ®©y cho c¸ c gi¸ trÞ kh¶ dÜ cñ a graphdriver vµ graphmode:
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Ý tng ø 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ô: Chng 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× chng 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:
|