Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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:






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.