CHNG6:ĐHO §1.KHÁINIMCHUNG TurboCcókhong100hàmđho.Cáchàmnàyđcchialàmhai kiu: Loitheokiuvănbn(vídhàmtocas) Loitheokiuđho §2.HÀMTHEOKIÊUVĂNBN Cáchàmnàyđcdùngvimànhìnhđnschaymànhìnhđho. Taphiđtvàođuchngtrìnhdòng#include<conio.h>. 1.Cas:M cđíchcacáchàmđhotheokiuvănbnlàtoracácca s.Caslàvùnghìnhchnhttrênmànhìnhdùngđgiihnvùngxut dliu.Nutaso nthovănbntrongcasthìconnháychdichuyn trong phm vi ca caschkhôngphitoànbmànhình.Taxétmt chngtrìnhtoracasvàđin đyvàođódòng“Xinchao“ Chngtrình61 #include<conio.h> #include<dos.h> #defineleft10 #definetop8 #defineright52 #definebot21 voidmain() { inti; clrscr(); window(left,top,right,bot); textcolor(RED); textbackground(GREEN); for(i=0;i<100;i++) { cputs(Xinchao); delay(100); } gotoxy(15,8); 53 cputs(Ketthuc); getche(); } Trongchngtrìnhtacóhàm: window(x1,y1,x2,y2)dùngđnđnhmtcascótođgóctrên tráilàx1,y1vàgócdiphilàx2,y2 textcolor(RED)đnđnhmàuchlàđ textbackcolor(GREEN)đnđnhmàun nvănbnlàxanhlácây gotoxy(x,y)đdichuynconnháyvtođx,y cputs(string)đđtchuistringtrongmtcas.Khigpbiênca caschuisđcxungdòng.Màutrongchđđ hođcquyđnh nhsau: S Màu 0 BLACK 1 BLUE 2 GREEN 3 CYAN 4 RED 5 MAGENTA 6 BROWN 7 LIGHTGRAY 8 DARKGRAY 9 LIGHTBLUE 10 LIGHTGREEN 11 LIGHTCYAN 12 LIGHTRED 13 LIGHTMAGENTA 14 YELLOW 15 WHITE 2.Dichvănbn:Mundichmtvùnghìnhchnhtcavănbnt ninàysangnikháctadùnghàmmovetext().Taxétchngtrìnhsauto ramtc as,đinđycasbngmtđonvănbnvàdicassangv tríkháctrênmànhình Chngtrình62 #include<conio.h> 54 #include<dos.h> #defineleft26 #definetop7 #defineright65 #definebot20 #definedesleft1 #definedestop1 #definenumcolor16 voidmain() { inti; clrscr(); window(left,top,right,bot); textbackground(GREEN); for(i=0;i<100;i++) { textcolor(i%numcolor); cputs(Xinchao); delay(200); } delay(2000); movetext(left,top,right,bot,desleft,destop); getche(); } Hàmmovetext(x1,y1,x2,y2,x0,y0)dùngdichuyncasx1,y1,x2,y2 đnvtrímimàtođgóctrêntráibâygilàx0,y0. 3.Lutrvàphchimànhìnhvănbn:Tacóthl utrmtvùngvăn bnhìnhchnhttrênmànhìnhvàsauđóphchilitimtvtrínàođó trênmànhình.Nhvytacóthtomtcasnhtrên đuvănbnhin hành.Taxétvídsau Chngtrình63 #include<conio.h> #include<dos.h> #defineleft1 #definetop1 #defineright80 #definebot25 55 intbuf[80][25]; voidmain() { inti,x,y; clrscr(); for(i=0;i<300;i++) cputs(TurboC); getche(); gettext(left,top,right,bot,buf); clrscr(); getch(); puttext(left,top,right,bot,buf); getch(); } Chngtrìnhlutoànbmànhìnhvàovùngđmcótênlàbufnh hàmgettext(x1,y1,x2,y2,buf) luvntronghìnhchnhtx1,y1,x2,y2vào bin buf.Hàmputtext(x1,y1,x2,y2, buf)đtlivănbntronghìnhch nhtx1,y1,x2,y2lubibinbuframànhình. 3.Mt shàmđhovănbnkhác: • voidclreol(void):xoáđncuidòng • intcprintf(constchar*format)đakítramtcas • voidtextattr(intnewattr)nđnhmàucùnglúcchovănbnvànn • voidgettextinfo(structtext_info*r):đccácthôngtinnhkiumàn hình, v trí và kích thc ca s, màu nn và văn bn ,v trícon nháy • voidnormvideo(void)trliđsángcũ • voidinsline(void):chènthêmmtdòng • voiddelline(void)xoámtdòng • voidhightvideo(void)tăngđsáng • voidlowvideo(void):gimđsáng • void textmode(int newmode) chuynđi gia các kiu văn bn. Hàmdùngcácđissau: Tr Hng ýnghĩa 1 LASTMODE Kiuvănbntrcđó 0 BW40Đentrng40ct 1 C40 Màu40ct 56 2 BW80Đentrng80ct 3 C80 Màu80ct 7 MONOĐnsc80ct §3.CÁCHÀMĐHO 1.Khitokiuđho:Đkhitođhotadùnghàminitgraph()đc khaibáotronggraphics.hvicúpháp: voidfarinitgraph(int*graphdrive,int*graphmode,char*path); vicácbin graphdrivechatrình điukhinđho graphmodekiuđho pathđngdnđnthmcchacácdriveđho.Trongphnnày taphidùnghaidu\\vìdu\đãđcdùngchokítescape. Đthunti ntakhitođhotđngbngcáchvit: graphdrive=detect; initgraph(graphdrive,graphmode,path); Tacóchngtrìnhvđngthngvàđngtrònnhsau: Chngtrình64 #include<graphics.h> #include<conio.h> voidmain() { intgd,gm; gd=DETECT; initgraph(&gd,&gm,c:\\bc\\bgi); line(0,0,100,100); circle(100,100,50); getche(); closegraph(); } 2.Liđho:Đbitliđhotadùnghàmintfargraphresult(void).Sau khibitmãlitachuynnósangchohàmgrapherrormsg().Hàmnàytrv contrchđ énli.Sauđâylàchngtrìnhminhho Chngtrình65 #include<graphics.h> #include<conio.h> 57 #include<stdio.h> #include<stdlib.h> voidmain() { intgd,gm,ge; char*ep; gd=DETECT; initgraph(&gd,&gm,c:\\bc\\bgi); ge=graphresult(); if(ge) { printf(Maloi%d,ge); ep=grapherrormsg(ge); puts(ep); getch(); exit(1); } line(0,0,100,100); circle(100,100,50); getche(); closegraph(); } 3.Đngthngvàmàus c:Đthitlpdng,muvàbdàycađng thngtadùnghàmvoidfarsetlinestyle(intstyle,ntpattern,intthickness). Thambinstylecóthlà: Tr Hng Ynghĩa 0 SOLID_LINEĐngđc 1 DOTTED_LINEĐngchm 2 CENTER_LINEĐnggch 3 DASHED_LINEĐnggchdài 4 USERBIT_LINEĐngtto Thambinthicknesscóthnhânmttronghaigiátrsau: Tr Hng Ynghĩa 58 1 NORM_WIDTH dãy1đimnh 2 THICK_WIDTH dãy3đimnh Đxácđnhmàuchođngthngtadùnghàmvoidsetcolor(intcolor.Ta cóchngtrìnhsau Chngtrình66: #include<graphics.h> #include<conio.h> #include<stdio.h> #include<stdlib.h> voidmain() { intgd,gm,ge; intx1=0,y1=0; intx2=199,y2=199; intxc=100,yc=100; intr=90; char *ep; gd=DETECT; initgraph(&gd,&gm,c:\\bc\\bgi); ge=graphresult(); if(ge) { printf(Maloi%d,ge); ep=grapherrormsg(ge); puts(ep); getch(); exit(1); } setlinestyle(1,1,1); setcolor(LIGHTGREEN); line(x1,y1,x2,y2); circle(xc,yc,r); getche(); closegraph(); } 59 4.Ellipsevàđagiác:Đvellipsetadùnghàm voidfarellipse(intx,inty,intgd,intgc,intxr,intyr) x,ytođtâmellipse gd,gcgócbtđuvvàgócktthúcv xr,yrtođtâmellipse Chngtrình67 :Vmtlotellipse #include<graphics.h> #include<conio.h> #include<stdio.h> #include<stdlib.h> voidmain() { intgd,gm,ge; intx=150,y=150; intg1=0,g2=360; intxr=150,yr; char*ep; gd=DETECT; initgraph(&gd,&gm,c:\\bc\\bgi); ge=graphresult(); if(ge) { printf(Maloi%d,ge); ep=grapherrormsg(ge); puts(ep); getch(); exit(1); } setcolor(RED); for(yr=0;yr<100;yr+=10) ellipse(x,y,g1,g2,xr,yr); getche(); closegraph(); } Đvđagiáctadùnghàm voidfardrawpoly(intnumber,intfar*addrlist) numbersđnhđagiáccngthêm1 addrlistmngchatođcácđnh,tođđimđ uvàcuiphi trùngnhau 60 Chngtrình68:Vmthìnhhpchnht #include<graphics.h> #include<conio.h> #defineleft50 #definetop50 #defineright150 #definebot180 inta[]={150,50,180,20,180,135,150,180}; intb[]={50,47,150,47,180,17,95,17,50,47}; voidmain() { intgd,gm; gd=DETECT; clrscr(); initgraph(&gd,&gm,c:\\bc\\bgi); setcolor(RED); rectangle(left,top,right,bot); setcolor(2); drawpoly(4,a); drawpoly(5,b); getche(); closegraph(); } 5.Tômàuvàmutô:TurboCcónhiuhàmđtômàu.Hàmthôngdng nhtđtôbêntrongmtđagiácvàmutôhinhànhlàvoidfarfillpoly(int number, intfar*addlist).Màuvàmutôđcthitlpnhhàmvoidfar setfillstyle(intpattern,intcolor).Binpatterncóthnhnmttrongcáctr sau: Tr Hng ýnghĩa 0 EMPTY_FILL Rng 1 SOLID_FILL Màuđc 2 LINE_FILLĐngngang 3 LTSLASH_FILL ////chéomnh 4 SLASH_FILL ////chéodày 5 BKSLASH_FILL \\\\chéongc 61 6 LTBKSLASH_FILL \\\\chéongcmnh 7 HATCH_FILL Scdatha 8 XHATCH_FILL Scdadày 9 INTERLEAVE_FILLĐngxenk 10 WIDE_DOT_FILL Chmtha 11 CLOSE_DOT_FILL Chmdày 12 USER_FILL Mutdo Bincolorđcchntheodanhsáchđãlitkêtrongphnsetcolor().Nu dùnggiátrkhônghplchopatternvàcolorthìhàmgraphresult()str vmãlilà11.Hàmfloodfill()dùngđtomàumthìnhkín.Nócnbit đimbtđutô.Hàmstôchođnkhigpđngbiêncómàuxácđnh bngbinborder.Cóthtôbêntronghayngoàihìnhvtuđimbtđu. Nutômt vùngkhôngkínthìmàutôslanratronglnngoàivtth.Sau đâylàchngtrìnhtôvòngtròn. Chngtrình69 #include<graphics.h> #include<conio.h> #definex200 #definey200 #definer150 voidmain() { intgd,gm; gd=DETECT; clrscr(); initgraph(&gd,&gm,c:\\bc\\bgi); setcolor(RED); circle(x,y,r); setfillstyle(CLOSE_DOT_FILL,BLUE); floodfill(x,y,RED); getche(); closegraph(); } Màudùngđtôcóthginghaykhácvimàudùngchođngvin ca vùng. Tuy vy màu dùng cho tham bin border ca floodfill() phi gingmàuvvtth(trongchngtrìnhlàmàuRED) 62 [...]... ta dùng hàm: void far settextstyle(int font, int direction, int charsize) Các fonts ch a trong các t p tin trong b ng sau Tr 0 1 2 3 4 5 6 7 8 9 10 H ng DEFAULT_FONT TRIPLEX_FONT SMALL_FONT SANSERIF_FONT GOTHIC_FONT SCRIPT_FONT SIMPLEX_FONT TRIPLEX_SCR_FONT COMPLEX_FONT EUROPEAN_FONT BOLD_FONT T p tin Cài s n trip.chr litt.chr sans.chr goth.chr scrip.chr simp.chr tscr.chr lcom.chr euro.chr bold.chr . voidtextattr(intnewattr)nđnhmàucùnglúcchovănbnvànn • voidgettextinfo(structtext_info*r):đccácthông tin nhkiumàn hình, v trí và kích thc ca s, màu nn và. voidfarsettextstyle(intfont,intdirection,intcharsize) Cácfontschatrong cáctp tin trongbngsau Tr Hng Tp tin 0 DEFAULT_FONT Càisn 1 TRIPLEX_FONT trip.chr 2 SMALL_FONT litt.chr 3