Para realizar grficos en C++ necesitaos poner el sistea en o!o grfico" Para ello !e#eos incl$ir a n$estro prograa la #i#lioteca !e grficos %&'P()C*"( #include <graphics.h> Para inicializar el o!o grfico se $tiliza la f$nci+n initgraph() , para !etenerlo la f$nci+n closegraph()" ' la f$nci+n initgraph se le !e#en pasar - arg$entos .$e peritirn !etectar !e fora a$totica la placa !e /i!eo , fijar el o!o !e /i!eo s alto posi#le0 int driver=DETECT, modo; initgraph(driver,modo,!C"##TC##$%&!); El prier paretro (1!ri/er) es asigna!o a 2E3EC34 por la tanto la f$nci+n detectgraph() es llaa!a4 , $n !ispositi/o , o!o grfico (seg$n!o paretro) apropia!os sern selecciona!os" El tercer paretro especifica el !irectorio !on!e los !ispositi/os grficos estn localiza!os" *i la f$nci+n initgraph() falla4 p$e!e interceptarse $n c+!igo !e error e inforar al $s$ario !e !ic5o pro#lea0 i' (graphresult()(= gr)*) + cout << ,Error al iniciar el modo gr-'ico, el programa 'inali.ar-!; getch(); e/it (0); 1 2e a5ora en a!elante es posi#le $tilizar c$al.$ier f$nci+n grfica en n$estro prograa" Para finalizar el o!o grfico ejec$taos la sig$iente instr$cci+n0 closegraph(); %eneralente al iniciar el o!o grfico se !ispone !e $na resol$ci+n !e 640x480" Es !ecir !isponeos !e 640 pixeles en el eje x , 480 pixeles en el eje ," Para copro#ar esto4 po!eos 5acer $so !e la f$nciones getma//() , getma/2() .$e !e/$el/en el xio pxel !el eje x e , respecti/aente" cout<<!3esoluci4n" , << getma//() << ,/! << getma/2(); En caso !e contar con $na resol$ci+n !e 640x4804 la lnea !e c+!igo anterior ostrara en pantalla lo sig$iente0 &esol$ci+n0 6-6x476 Esto se !e#e a .$e el 8ltio pxel !e eje x es 6-64 , el 8ltio pxel !el eje , es 4764 ,a .$e a#os ejes coienzan en el pxel 0" Establecer colores Para seleccionar el color !e fon!o en o!o grafico !e#eos $tilizar la f$nci+n set5*color() , para esta#lecer el color !e !i#$jo setcolor()" Para lipiar la pantalla en o!o grfico se $tiliza la f$nci+n cleardevice() .$e !ejar la pantalla con el color esta#leci!o en set5*color()" Funciones ms utilizadas: rectangle (int X1, int Y1, int X2, int Y2); 2i#$ja $n rectng$lo sin relleno en la pantalla arca!o por los p$ntos (X94 Y9) , (X:4 Y:)4 !on!e X9 es el extreo iz.$ier!o !el rectng$lo4 Y9 es el extreo s$perior4 X: es el extreo !erec5o e Y: el extreo inferior !el rectng$lo" rectangle (066, 766, 866, 966); circle (int X, int Y, int radio); 2i#$ja $n circ$lo (c$,o taa;o !e ra!io est !a!o por la /aria#le ra!io) en la pantalla con centro en los p$ntos (X4 Y)" circle (066, 066, 06); line (int X1, int Y1, int X2, int Y2); 2i#$ja $na lnea recta inician!o en los p$ntos X94 Y9< concl$,en!o en X:4 Y:" line (066, 766, 866, 966); ellipse (int X, int Y, int stangle, int endangle, int xradius, int radius); 2i#$ja $n elipse con centro en los p$ntos X4 Y" stangle , en!angle in!ican el ng$lo inicial , final !el arco elptico a !i#$jar" Para ello se toa coo referencia la sig$iente fig$ra0 C++ Gua Prctica: Modo Grfico. Desarrollo de Aplicaciones y Manipulacin de Datos. Prof: Mileti 900 :00 400 -00 900 900 900 :00 400 -00 0 gra!os 60 gra!os 980 gra!os :70 gra!os -60 gra!os =e!iante xra!i$s e ,ra!$is se le p$e!e esta#lecer la fora !e +/alo al elipse" >eaos $n ejeplo !e arco elptico0 ellipse(066,066,0:6,8;6,<6,<6); ellipse(066,066,6,8;6,76,;6); Figuras con relleno: En las f$nciones anteriores no es posi#le esta#lecer $n relleno a las fig$ras crea!as" ?as f$nciones .$e s aceptan $n estilo !e relleno son0 5ar, 5ar8d, 'illelipse 2 pieslice4 entre otras. Para in!icar el estilo !e relleno !e estas fig$ras se $tiliza la f$nci+n set'illst2le !e la sig$iente anera0 set'illst2le(int pattern, int color); El /alor !e pattern in!ica el tipo !e relleno4 p$!ien!o toar $no !e los sig$ientes /alores0 E=P3Y@A)?? *B?)2@A)?? ?)CE@A)?? ?3*?'*(@A)?? *?'*(@A)?? DE*?'*(@A)?? ?3DE*?'*(@A)?? ('3C(@A)?? X('3C(@A)?? )C3E&?E'>E@A)?? F)2E@2B3@A)?? C?B*E@2B3@A)?? G*E&@A)?? Color representa el color !e relleno (!el 0 al 9H o constante !e color)" Ejeplos0 ==Di5u>a una 5arra 5idimensional con relleno s4lido de color verde set'illst2le(?)@&DAB&@@, %3EEC); 5ar(066,06,0<6,D6); ==Di5u>a una 5arra tridimensional con lEneas de relleno de color c2an set'illst2le(@&CEAB&@@, CFGC); 5ar8d(766,76,7<6,D6,0<,0); ==Di5u>a un elipse 2 lo rellena con lEneas o5licuas de color ro>o. set'illst2le(?@G?HAB&@@, 9); 'illellipse(<6,766,96,I6); ==Di5u>a un sector con relleno cuadriculado de color 5lanco set'illst2le(HGTCHAB&@@,JH&TE); pieslice(0<6,766,6,9<,066); !rear animaciones utilizando ciclo "or =e!iante el ciclo for es posi#le controlar el ca#io !e alg$nos paretros !e las f$nciones grficas4 generan!o !e esta anera alg8n tipo !e aniaci+n" ' contin$aci+n $n ejeplo0 #include<graphics.h> #include<conio.h> #include<iostream.h> #include<stdli5.h> #include<dos.h> void main()+ int driver=DETECT, modo, i; clrscr(); initgraph(driver,modo,KC"##TC##$%&K); i' (graphresult()(=gr)*)+ cout<<KError al iniciar modo gr-'ico.K; getch(); e/it(0); 1 set'illst2le(?)@&DAB&@@,$@LE); 'or(i=866;i>0;iMM)+ setcolor(3ED); line(getma//()=7,getma/2()=7,6, getma/2()); line(getma//()=7,getma/2()=7,getma//(),getma/2()); setcolor($@GCN); 'illellipse(getma//()=7,getma/2()=7,i,i); dela2(<6); ==cleardevice(); 1 closegraph(); 1 Establecer tama#o estilo del texto Para in!icar el forato !el texto .$e aparecer en pantalla !$rante el o!o grfico se $tiliza la f$nci+n sette/tst2le" sette/tst2le(int 'ont, int direction, int charsi.e); El /alor !e 'ont es $na constante .$e in!ica la f$ente a $tilizar" ?as constantes !isponi#les son0 2EA'G?3@ABC3 3&)P?EX@ABC3 *='??@ABC3 *'C*@*E&)A@ABC3 %B3()C@ABC3 Direction es $na constante .$e in!ica la orientaci+n !el texto4 p$e!e ser (B&)I@2)& (el texto se $estra 5orizontalente !e iz.$ier!a a !erec5a) o >E&3@2)& (el texto se $estra con senti!o /ertical !e a#ajo 5acia arri#a)" Charsi.e se correspon!e con $n n8ero entero .$e in!ica el taa;o !e la f$ente" ?os /alores /an !el cero en a!elante4 a$entan!o el taa;o !e la letra" ' contin$aci+n se esta#lece el forato para !i#$jar $n texto" sette/tst2le(?GC?A?E3&BAB)CT, H)3&OAD&3, 9); Gna /ez in!ica!o el forato !el texto po!eos presentar en pantalla $na le,en!a a tra/Js !e la f$nci+n outte/t/2()0 outte/t/2(int /, int 2, char Pte/tstring); ?os /alores !e / e 2 esta#lecen las coor!ena!as en !on!e el texto ser !i#$ja!o" Te/tstring se refiere a la ca!ena !e caracteres .$e se ostrar en pantalla"