Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Articulo-Conceptos Basicos de Graficacion en C - 2004-I PDF
Articulo-Conceptos Basicos de Graficacion en C - 2004-I PDF
1
1.2.1 La funcin initgraph() 2 LNEAS, FIGURAS
Una vez declaradas las variables monitor y GEOMTRICAS, COLORES Y
modo que controlarn la resolucin identificando RELLENOS
el tipo de pantalla o monitor y su modo de Sera muy difcil considerar todas las opciones
operacin respectivamente, se utiliza la funcin posibles de todas las funciones de graficacin; sin
initgraph() para habilitar el monitor embargo, en este artculo se tratan los temas
seleccionado en modo grfico. La funcin fundamentales para implementarlas. Bsicamente
initgraph() tiene 3 parmetros o argumentos: se mostrar que antes de utilizar un color, un tipo
1) La variable que identifica el monitor. de lnea, de relleno, o cualquier funcin de
2) El modo de operacin grfico. definicin del tipo de trazo, etc. es necesario
3) Subdirectorio que contiene los definirlo. A continuacin se muestran las
controladores de los monitores (archivos funciones bsicas de graficacin.
con extensin BGI) y los archivos con los
tipos de letra (extensin CHR) como lo 2.1 La funcin line()
muestra la Fig.2. Esta funcin se utiliza para dibujar una lnea
entre 2 puntos. Para ello, la funcin requiere 4
int monitor=DETECT, modo; parmetros que representan las coordenadas (en
initgraph(&monitor,&modo,"\\tc\\bgi"); pixeles) de los dos puntos que se desea unir
Fig. 2. La funcin initgraph(). mediante una lnea recta. La Fig. 4 muestra un
ejemplo que une los puntos 50,100 y 300,200
Si se desea usar el directorio actual por defecto, (columna, rengln respectivamente).
se utiliza la funcin initgraph() como lo indica
la Fig. 3. line(50,100,300,200);
3
cruzadas ligeras
XHATCH_FILL 8
Relleno de lneas setcolor(RED);
circle(300,150,27);
cruzadas gruesas
INTERLEAVE_FILL 9 Relleno de lneas setfillstyle(SOLID_FILL,BLUE);
WIDE_DOT_FILL 10 Relleno de puntos floodfill(300,150,RED);
espaciados
CLOSE_DOT_FILL 11 Relleno de puntos Fig. 12. Uso de la funcin floodfill().
cercanos
USER_FILL 12 Relleno definido
por el usuario 3 CMO MOSTRAR MENSAJES
Fig. 10. Patrones de relleno de la funcin setfillstyle() EN MODO GRFICO
Aunque el monitor se encuentre habilitado en
Por ejemplo, si se desea definir el patrn de modo grfico, se puede combinar la colocacin
relleno de puntos cercanos de color rojo, se usa la de texto y grficas en la pantalla; sin embargo, en
funcin setfillstyle() como lo muestra la esta seccin se hace nfasis en la colocacin de
Fig. 11. mensajes en formato grfico, definiendo el tipo
de letra, direccin y tamao del mensaje deseado.
setfillstyle(CLOSE_DOT_FILL, RED);
3.1 La funcin settextstyle()
Fig. 11. Seleccin del patrn de relleno
CLOSE_DOT_FILL de color RED
Antes de mostrar un mensaje, debe
seleccionarse el tipo de letra, direccin y tamao
del mensaje mediante la funcin
2.7 La funcin floodfill() setfillstyle() la cual requiere 3
Una vez seleccionado el patrn de relleno argumentos:
mediante la funcin setfillstyle(), se 1) El tipo de letra. (Ver Fig. 13).
procede a rellenar una figura usando la funcin 2) La direccin del mensaje (horizontal o
floodfill(). Es muy importante resaltar que vertical).
3) Tamao.
la figura que se desea rellenar est
completamente cerrada, ya que esta funcin Tipo letra Valor Archivo
contiene un algoritmo que busca el contorno de la DEFAULT_FONT 0 -
figura y, en caso de encontrar una apertura, la TRIPLEX_FONT 1 TRIP.CHR
funcin extralimitar la figura y tambin rellenar SMALL_FONT 2 LITT.CHR
la parte externa de la misma. La funcin SANS_SERIF_FONT 3 SANS.CHR
GOTHIC_FONT 4 GOTH.CHR
floodfill() requiere identificar un punto que
Fig. 13. Tipos de letra.
se encuentre dentro del contorno de la figura y
necesita 3 argumentos:
1) Coordenada de la columna del punto 3.2 La funcin outtextxy()
interno de la figura. Una vez definido el tipo de letra, direccin y
2) Coordenada del rengln del punto interno tamao correspondiente, se usa la funcin
de la figura. outtextxy() para desplegar un mensaje grfico en
3) Color del borde de la figura. la pantalla. Esta funcin requiere 3 argumentos:
1) Coordenada de la columna donde se desea
El ejemplo mostrado en la Fig. 12 dibuja un mostrar el mensaje.
circulo de color ROJO y lo rellena de color 2) Coordenada del rengln.
AZUL slido. 3) Mensaje a mostrar.
La Fig. 14 muestra un ejemplo.
4
settextstyle(GOTHIC_FONT, HORIZ_DIR, 5); setcolor(WHITE); /*Establece el color
outtextxy(100,200,Tec Laredo); blanco*/
circle(100,200,30); /* Dibuja un
Fig. 14. Mostrar un mensaje grfico en la pantalla. circulo cuyo centro esta en 100,200 y de
radio=30 pixeles*/
setfillstyle(LINE_FILL,RED); /*
Establece el relleno de lineas rojas*/
4 APLICACIN TPICA floodfill(100,200,WHITE); /*Rellena el
El programa de la Fig. 15 es un claro ejemplo contorno desde 100,200 hasta encontrar
del uso de lneas, figuras geomtricas un trazo blanco*/
elementales, colores y rellenos
/* rectangle(200,100,300,200); /* Dibuja
Programa para graficar figuras un rectangulo desde 200,100 hasta
geometricas, lineas, texto, colores y 300,200*/
rellenos setfillstyle(HATCH_FILL,BLUE); /*
Establece el relleno como cuadricula*/
MiniTaller: Tecnicas avanzadas de floodfill(250,150,WHITE); /* Rellena
programacion en Lenguaje C++ el contorno desde 100,200 hasta
Instructor: M.C. Bruno Lopez Takeyas encontrar un trazo blanco*/
*/
setcolor(GREEN); /*Establece el color
#include <graphics.h> /* Encabezado con verde*/
declaraciones de graficos*/ settextstyle(GOTHIC_FONT,HORIZ_DIR,5);
#include <conio.h> /* Establece el font como Gotico
#include <stdio.h> en posicion Horizontal de tamao 5*/
outtextxy(330,100,"Gothic");
void main(void) /*Despliega el mensaje "Gothic" en
{ 330,100*/
int monitor=DETECT, modo; /*
Declaracion de tipo de monitor y modo*/ setcolor(CYAN); /*Establece el color
/* Automaticamente detecta el tipo de celeste*/
monitor*/
settextstyle(SANS_SERIF_FONT,VERT_DIR,7)
initgraph(&monitor,&modo,"\\tc\\bgi"); ;
/* Inicializa el modo grafico indicando /* Establece el font como Sanserif en
el monitor y modo utilizado*/ posicion Vertical de tamao 7*/
/* El subdirectorio \\tc\\bgi indica la outtextxy(330,200,"Sanserif");/*
ruta de localizacion de los archivos Despliega el mensaje "Sanserif" en
*.BGI (monitores) y *.CHR (tipos de 330,200*/
letras)*/
getch();
closegraph(); /* Termina el modo
gotoxy(1,23);printf("getmaxx()=%d",getma grafico (vuelve a su modo de texto
xx()); normal)*/
return;
gotoxy(1,24);printf("getmaxy()=%d",getma }
xy()); Fig. 15.- Aplicacin tpica.
setcolor(YELLOW); /* Establece el
color amarillo (de aqui en adelante los
trazos aparecen de este color*/ 5 CONCLUSIONES
line(0,0,50,50); /* Dibuja una linea Aunque existen muchas otras funciones de
desde 0,0 hasta 50,50*/
graficacin, este artculo presenta los conceptos y
funciones bsicas para iniciar la codificacin de
5
programas en C++ que permitan utilizar el
monitor en modo grfico. Aqu se muestran las
operaciones fundamentales de graficacin y se
presentan ejemplos representativos, los cuales
pueden obtenerse en el sitio
http://www.itnuevolaredo.edu.mx/takeyas o bien
solicitarse al autor escribiendo un correo
electrnico a takeyas@itnuevolaredo.edu.mx.
6 BIBLIOGRAFA