Sei sulla pagina 1di 6

REPBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA DE LA
FUERZA ARMADA BOLIVARIANA
UNEFA NCLEO FALCN SEDE CORO
TELECOMUNICACIONES

MANEJO GRAFICO

PROFESOR
NELSON CAMPOS

REALIZADOS POR
CARTAGENA, EVELYN
MELENDEZ, GENESIS
PRIETO, MARIA TERESA
SANTANDER, AUREMILY

SANTA ANA DE CORO, 3 DE FEBRERO DE 2.014

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.

INICIALIZACIN DEL MODO GRAFICO


Para llevar a cabo el adaptador a un modo grafico se utiliza la funcin initgraph() que inicializa el
paquete de grficos bgi. Su prototipo es el que se muestra a continuacin:
_void initgraph(int controlador, int modo, char viadeacceso_
Se carga en la memoria el controlador de grficos correspondiente al nmero determinado por el
controlador. El parmetro modo apunta a un entero que especifica el modo de vdeo que van a usar las
funciones de grficos. El parmetro viadeacceso especifica el directorio donde se encuentra el
controlador. Si no se especifica se busca en el directorio actual. Los archivos BGI deben de estar
disponibles en el sistema ya que contienen los controladores grficos, sin embargo no es necesario
preocuparse por el nombre real del archivo, ya que el controlador queda especificado solamente con su
nmero, para ello graphics.h tiene varias macros.
Para poder trabajar en modo grafico primero deberemos inicializarlo, las funciones son estas.
detectgraph(int*tarjeta,int*modo);

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( );

Retorna la coordenada mxima vertical, probablemente 479. Ej: vm=getmaxy( );


int getx( );
Retorna la coordenada actual horizontal. Ej: hact=getx( );
int gety( );
Retorna la coordenada actual vertical. Ej: vact=gety( );
moveto(intx, int y);
Se mueve a las coordenadas indicadas. Ej: moveto(320,240);
setcolor(color);
Selecciona el color de dibujo y texto indicado. Ej: setcolor(1); o setcolor(BLUE);
setbkcolor(color);
Selecciona el color de fondo indicado. Ej: setbkcolor(4); o setbkcolor(RED);
int getcolor( );
Retorna el color de dibujo y texto actual. Ej: coloract=getcolor( );
int getbkcolor( );
Retorna el color de fondo actual. Ej: fondoact=getbkcolor( );
int getpixel(int x, int y);
Retorna el color del pixel en x,y. Ej: color=getpixel(120,375);
cleardevice( );
Borra la pantalla. Ej: cleardevice( );
Funciones de dibujo
putpixel(int x, int y, color);
Pinta un pixel en las coordenadas y color indicados. Ej: putpixel(100,50,9);
line(int x1, int y1, int x2, int y2);
Dibuja una lnea desde x1, y1 a x2, y2. Ej: line(20,10,150,100);
circle(int x, int y, int radio);
Dibuja un crculo del radio indicado y con centro en x,y. Ej: circle(320,200,20);
rectangle(int x1, int y1, int x2, int y2);
Dibuja un rectngulo con la esquina superior izquierda en x1, y1 y la inferior derecha en x2, y2. Ej:
rectangle(280,210,360,270);
arc(int x,inty, int angulo1, int angulo2, int radio);
Dibuja un arco cuyo centro esta en x,y, de radio r, y que va desde angulo1 a angulo2.
Ej: arc (200,200,90,180,40);
stlinestyle(int estilo, 1, grosor);

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

Potrebbero piacerti anche