Funciones básicas de graphics.h.
Función
setbkcolor
void far setbkcolor(int color);
Esta
función es usada para asignar el color de fondo al valor del color de fondo
especificado por el argumento color. Existen varios valores
para ciertos colores de fondo.
La
función setbkcolor no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
void main() {
int driver = EGA;
int modo = EGAHI;
initgraph( &driver, &modo, “C:\\TC20\\BIN” );
setbkcolor( 4 );
circle( 300, 150, 50 );
getch(); /* Pausa */
closegraph();
getch();
}
Función getbkcolor.
int far getbkcolor(void);
Esta
función es usada para obtener el valor del color de fondo actual. El color de
fondo, por defecto, es el color 0. Sin embargo, este valor puede cambiar con
una llamada a la función setbkcolor. Existen
varios valores para ciertos colores de fondo.
La
función getbkcolor retorna el valor del color de fondo actual.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = EGA,modo = EGAHI,color;
initgraph( &driver, &modo,
"C:\\tc20\\BIN" );
setbkcolor( 4 );
circle( 300, 150, 50 );
color = getbkcolor();
getch(); /* Pausa */
closegraph();
printf( "Color de fondo: %d\n", color );
getch();
}
void far setcolor(int color)
Esta función
coloca el atributo color es decir escoge un color entre 0 y 15 o su equivalente en inglés (ver
pagina 3 Modo de 16 colores) todo lo que
se dibuje después de esta instrucción tendrá el color establecido por la función
setcolor el valor de esta es función es WHITE.
Esta función
no devuelve ningún valor.
Ejemplo.
# include
<graphics.h>
# include <dos.h>
# include <stdlib.h>
# include <conio.h>
void main(){
int driver=DETECT,modo,i;
initgraph(&driver,&modo,"c:\\tc20\\BIN");
i=0;
do
{
setcolor(i);
circle(random(639),random(479),random(i+8));/*Random
definida en stdlib*/
delay(30000); /*Detiene la ejecución del programa durante
30000 milisegundos*/
i=(i<16)?i:0;
i++;
}while(!kbhit());
}
Función cleardevices
void far cleardevice(void);
Esta
función es usada para despejar una pantalla gráfica. La función cleardevice usa
el color de fondo actual, como es establecido por la función setbkcolor,
para rellenar la pantalla. La posición del cursor gráfico es la esquina
superior izquierda de la pantalla - posición (0,0) - después de que la pantalla
haya sido borrado.
La
función cleardevice no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
void main() {
int driver = EGA;
int modo = EGAHI;
int relleno, color;
initgraph( &driver, &modo,
"C:\\tc20\\BIN" );
relleno = 1;
color = 1;
setlinestyle( SOLID_LINE, relleno, THICK_WIDTH );
circle( 300, 200, 80 );
getch(); /* Pausa */
setbkcolor( color );
cleardevice();
setlinestyle( SOLID_LINE, relleno, THICK_WIDTH );
circle( 400, 200, 20 );
getch(); /* Pausa */
closegraph();
getch();
}
Función getmaxx
int far getmaxx(void);
Esta
función es usada para obtener la coordenada máxima de la pantalla en la
dirección horizontal. Este valor suele ser la resolución horizontal máxima
menos 1.
La
función getmaxx retorna la coordenada máxima de la pantalla en la
dirección horizontal.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = EGA,modo = EGAHI,x_max;
initgraph( &driver, &modo,
"C:\\TC20\\BIN" );
x_max = getmaxx();
closegraph();
printf( "X máxima: %d\n", x_max );
getch();
}
Función
getmaxy
int far getmaxy(void);
Esta
función es usada para obtener la coordenada máxima de la pantalla en la
dirección vertical. Este valor suele ser la resolución vertical máxima menos 1.
La
función getmaxy retorna la coordenada máxima de la pantalla en la
dirección vertical.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = VGA;
int modo = EGAHI;
int x_max, y_max;
initgraph( &driver, &modo, “C:\\TC20\\BIN” );
x_max = getmaxx();
y_max = getmaxy();
closegraph();
printf(
"X máxima: %d\tY máxima: %d\n", x_max, y_max );
getch();
}
Ø Rellenos
Es el proceso
de rellenar una región de la pantalla con un patrón o color. Turbo C utiliza
dos métodos para definir la región de rellenos. El primero relleno de polígonos,
usa la lista de vértices del polígono para calcular la geometría del interior,
El segundo relleno es por el método de inundación, busca desde un punto inicial
llamado la semilla en todas las direcciones para encontrar una frontera que
encierre la regio. La frontera se reconoce como el valor del píxel que tiene.
Antes de
estudiar los dos métodos estudiaremos la función setfillstyle que será de gran
importancia a la hora de realizar los dos tipos de rellenado y bar que es una función
similar a rectangle.
Función
bar
void far bar(int izquierda, int superior, int derecha, int
inferior);
Esta
función dibujará una barra rectangular y rellenada de dos dimensiones. La
esquina superior izquierda de la barra rectangular está definida por los
argumentos izquierdos y superiores. Estos argumentos corresponden a los valores
x e y de la esquina superior izquierda. Similarmente, los
argumentos derecha e inferior definen la esquina inferior derecha de la barra.
La barra no tiene borde, pero es rellenada con la trama de relleno actual y el
color de relleno como es establecido por la función setlinestyle.
La
función bar no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
void main() {
int driver = EGA,modo = EGAHI, x, y, color,fill;
initgraph( &driver, &modo,
"C:\\tc20\\BIN" );
x = 20;
y = 20;
color = 1;
fill = 1;
do {
setfillstyle( fill, color );
bar( x, y, x+40, 320 );
x += 40;
y += 10;
color = (color+1) % 16;
fill = (fill+1) % 12;
} while( x < 620 );
getch(); /* Pausa */
closegraph();
}
El patrón de relleno se define con las Funciónes
setfillstyle y setfillpattern
Función setfillstyle
void far setfillstyle(int trama, int
color);
Esta
función es usada para seleccionar una trama predefinida y un color de relleno.
El argumento trama especifica la trama predefinida, mientras que el argumento
color especifica el color de relleno. Existen trece valores ya
definidos para tramas. Sin embargo, la trama USER_FILL (valor
12) no debería usarse para asignar una trama definida por el usuario. En su
lugar, se debería usar la función setfillpattern.
La
función setfillstyle no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
void main() {
int driver = EGA,modo = EGAHI;
initgraph( &driver, &modo,
"c:\\tc20\\bin" );
setfillstyle( LTSLASH_FILL, 6 );
bar( 50, 50, 350, 300 );
getch(); /* Pausa */
closegraph();
}
LTSLASH_FILL
es un estilo de relleno si desea estudiarlos se encuentran en el libro(Ver
pagina # 5 ).
Función setfillpattern
void far setfillpattern(char far *trama,
int color);
Esta
función es usada para seleccionar una trama de relleno definido por el usuario.
El argumento *trama apunta a una serie de ocho bytes que representa una trama
de relleno de bits de 8 x 8. Cada byte representa una fila de ocho bits, donde
cada bit está encendido o no (1 ó 0). Un bit de 0 indica que el píxel
correspondiente será asignado el color de relleno actual. Un bit de 0 indica
que el píxel correspondiente no será alterado. El argumento color especifica el
color de relleno que será usado para la trama.
La
función setfillpattern no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
void main() {
int driver = EGA,modo = EGAHI;
char
trama1[8] = { 0x33, 0xEE, 0x33, 0xEE, 0x33, 0xEE, 0x33, 0xEE };
char trama2[8] = { 0x0A, 0xF0, 0xF0, 0x0A, 0x0A, 0xF0,
0xF0, 0x0A };
initgraph( &driver, &modo,
"C:\\tc20\\bin" );
bar( 50, 50, 150, 150 );
setfillpattern( trama1, 9 );
bar( 160, 50, 260, 150 );
setfillpattern( trama2, 4 );
bar(
105, 160, 205, 260 );
getch();
/* Pausa */
closegraph();
}
1.
Relleno por medio de un polígonos.
void far fillpoly(int numpuntos, int far
*puntos);
Esta
función es usada para crear un polígono rellenado. El argumento numpuntos es
usado para definir el número de puntos en el polígono. Al contrario que la
función drawpoly, la función automáticamente cierra el
polígono. El argumento *puntos apunta a un array de números de longitud
numpuntos multiplicado por 2.
Los
dos primeros miembros del array identifica las coordenadas x e y del
primer punto, respectivamente, mientras que los dos siguientes especifican el
siguiente punto, y así sucesivamente. La función fillpoly dibuja
el
perímetro del polígono con el estilo de línea y color actuales. Luego, el
polígono es rellenado con la trama de relleno y color de relleno actuales.
La
función fillpoly no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = EGA,modo = EGAHI,trama,
color;
int puntos[6] = { 300, 50, 500, 300,
100, 300 };
initgraph( &driver, &modo,
"C:\\tc20\\bin" );
trama = SLASH_FILL;
for(color=0;color<=15;color++)
{
setfillstyle(
trama, color );
fillpoly( 3, puntos
);
getch();
}
getch(); /* Pausa */
closegraph();
}
/*Este
programa te muestra los diferentes colores con una misma trama trata de
modificarlo para que obtengas todas las tramas con todos los colores*/
2.
Relleno por el método de inundación.
void far floodfill(int x, int y, int
borde);
Esta
función es usada para rellenar un área cerrado con el color de relleno y trama
de relleno actuales. Los argumentos x e y especifican el punto de comienzo para
el algoritmo de relleno. El argumento borde especifica el valor del color del
borde del área. Para que la función fillpoly Funcione como es esperado,
el área a ser rellenado debe estar rodeada por el color especificado por el
argumento borde. Cuando el punto especificado por los argumentos x e y se
encuentra dentro del área a ser rellenada, el interior será rellenado. Si se
encuentra fuera del área, el exterior será rellenado.
Nota:
Esta función no Funciona con el driver IBM-8514.La
función floodfill no retorna ningún valor.
Ejemplo:
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main() {
int driver = EGA,modo = EGAHI,trama, color;
int
puntos[8] = { 300, 50, 500, 300, 100, 300, 300, 50 };
initgraph(
&driver, &modo, "C:\\tc20\\bin" );
setcolor(
10 ); /*verde*/
drawpoly(
4, puntos );
trama = SLASH_FILL;
for(color = 0;color<=15;color++)
{
setfillstyle( trama, color );
floodfill( 400, 250, 10 );
getch();
}
getch();
/* Pausa */
closegraph();
}
Archivo a descargar: Tema 3
Archivos a descargar: Graficos
Relog Analogo Sencillo
Barras de diferentes colores
Barra en 3d
Estrellas
Tic Tac
Crystal
Videos sobre Programacion Grafica en C
Video 1
Archivos a descargar: Graficos
Ejercicos a realizar opcional no es obligatorio, no es tarea, es solo un reto
Relog Analogo Sencillo
Barras de diferentes colores
Barra en 3d
Estrellas
Tic Tac
Crystal
Videos sobre Programacion Grafica en C
Video 1
Profe como se llaman, cuales son los q tenemos q entregar el luner??? hay 6 ejercicios :/
ResponderEliminardijo q eran 3 y hay 6 ai :/
ResponderEliminarLos 6 ejercicios se deberan de solucionar
ResponderEliminar:O deam!!! u.u
ResponderEliminarq valorrrr..... estan pffff.... si llevamos algunos q también tiene valor???
ResponderEliminarsi no cumplen con los seis ejercicios va por 5 puntos
ResponderEliminarY, ¿que tal estaríamos de tiempo?
ResponderEliminarEs decir, ¿para cuando es?.
les daria hasta el dia miercoles
ResponderEliminar