Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MANEJO GRAFICO
PROFESOR
NELSON CAMPOS
REALIZADOS POR
CARTAGENA, EVELYN
MELENDEZ, GENESIS
PRIETO, MARIA TERESA
SANTANDER, AUREMILY
MANEJO GRAFICO
El estndar de C no define ninguna funcin grafica debido a las grandes diferencias entre las
interfaces de los distintos tipos de hardware. Nosotros veremos el conjunto de funciones que utiliza
Turbo C. La resolucin ms habitual del modo grafico en Turbo C es de 640X480X16.
MANEJO DE GRFICOS EN C
Las funciones que llevan a cabo los grficos en C es permitir generar dibujos y presentaciones de los
programas en general (es decir, la forma en que lucen al usuario). Las funciones de salida dependen del
adaptador y del monitor que se est utilizando. El controlador seleccionado se carga desde el disco
durante la inicializacin de la biblioteca de grficos llamado initgraph(), y se necesita incluir la librera
#include.
USO DE COLORES
En el modo grafico se pueden realizar diferentes funciones como: dibujar una lnea, un rectngulo, un
crculo, una elipse, un punto, poner un texto, cambiar color a todos los objetos anteriormente
mencionados. Antes de continuar debes saber cuales es la tabla de correspondencia de colores que
maneja Turbo C.
setcolor(color);
Donde color es el color que deseamos utilizar, el cual se indica en ingles con letras maysculas, o
igualmente podemos utilizar el cdigo de colores indicado en la tabla anterior.
Detecta el tipo de tarjeta que tenemos instalado. Si en el primer argumento retorna -2 indica que no
tenemos ninguna tarjeta grfica instalada (cosa bastante improbable).
initgraph(int *tarjeta, int *modo, path);
Inicializa el modo grfico (primero hay que usar detectgraph). En path deberemos indicar el directorio
donde se encuentra el archivo EGAVGA.BGI.
int graphresult( );
Retorna el estado del modo grfico. Si no se produce ningn error devuelve 0, de lo contrario devuelve
un valor entre -1 y -16.
char grapherrormsg(int error);
Retorna un puntero al mensaje de error indicado por graphresult.
Finalizacin del modo grafico
Closegraph();
Cierra el modo grfico y nos devuelve al modo texto.
Restorecrtmode();
Reestablece el modo de video original (anterior a initgraph).
/*Inicializacion del modo grafico.*/
#include
Main() /*Inicializa y finaliza el modo grafico*/
{
Int tarjeta, modo, error;
Detectgraph(&tarjeta,&modo);
Initgraph(&tarjeta,&modo,C:\ \TC\BGI);
Error=graphresult();
If(error)
{
Printf(%s,grapherrormsg(error));
}
Else
{
Getch();
Closegraph();
}
}
Funciones
int getmaxx( );
Retorna la coordenada mxima horizontal, probablemente 639. Ej: hm=getmaxx( );
int getmaxy( );
Seleccionar el estilo de lnea a utilizar. El estilo puede tomar un valor de 0 a 4. El grosor puede tomar
dos valores: 1 = normal y 3 = ancho. Ej: setlinestyle(2,1,3);
Funciones de Relleno:
floodfill(int x, int y, int frontera);
Rellenar el area delimitada por el color indicado en frontera comenzando desde x,y. Ej:
floodfill(100,30,12);
stfillstyle(int pattern, int color);
Selecciona el patron y el color de relleno. El patrn puede tomar un valor de 0 a 12. Ej: setfillstyle(1,9);
bar(int x1, int y1, intx2, int y2);
Dibuja una barra (rectangulo) y si es posible la rellena. Ej: bar(200,200,400,300);
bar3d(int x1, int y1, int x2, int y2, int profundidad, int tapa);
Dibuja una barra en 3d, son los mismos valores que bar adems de la profundidad y la tapa: 0 si la
queremos sin tapa y 1 si la queremos con tapa. Ej: bar3d(100,100,400,150,40,1);
pieslice(int x, int y, int angulo1, int angulo2, int radio);
Dibuja un sector. Hace lo mismo que arc, pero adems lo cierra y lo rellena. Ej:
pieslice(250,140,270,320,50);
Funciones de escritura de texto
outtextxy(int x, int y, char *);
Muestra el texto indicado (puede ser un array o puede escribirse al llamar a la funcin) en las
coordenadas x,y. Ej: outtextxy(50,50,Esto es texto en modo grfico);
settextstyle(int fuente, int direccin, int tamao);
Selecciona el estilo del texto. Las fuentes ms comunes son las que van de 0 a 4. La direccin puede
ser: 0= horizontal y 1 =vertical. El tamao puede tomar un valor de 1 a 10. Ej: settextstyle(2,0,5);
setviewport(int x1, int y1, int x2, int y2, int tipo);
Define una porcin de pantalla para trabajar con ella. La esquina superior izquierda est determinada
por x1,y1 y la inferior por x2, y2. Para tipo podemos indicar 1, en cuyo caso no mostrar la parte de un
dibujo que sobrepase los lmites del viewport, o distinto de 1, que si mostrar todo el dibujo aunque
sobrepase los lmites. Al activar un viewport, la esquina superior izquierda pasar a tener las
coordenadas (0,0). Para volver a trabajar con la pantalla completa, deberemos escribir viewport
(0,0,659,479,1);
clearviewport( );
Borra el contenido del viewport.
Librera graphics.h
Algunas funciones:
getmaxcolor
Funcin: Retorna el valor ms alto de color disponible
Sintaxis
mcolor=getmaxcolor( );
setactivepage
Funcin: Retorna el valor ms alto de color disponible.
Sintaxis
setactivepage(pgina); /*En modo VGA pgina = 0 1 */
setvisualpage
Funcin: En modos de video de varias pginas, selecciona la que se visualizar por pantalla.
Sintaxis
Setvisualpage(pgina);
Fuentes:
http://es.scribd.com/doc/5869345/MI-LIBRO-C
http://fcqi.tij.uabc.mx/docentes/cgaxiola/prog_p3.pdf
http://usuarios.multimania.es/charlytospage/dev.htm