Vous êtes sur la page 1sur 12

Graficos en C

1. Lanzar una pantalla

#include <winbgim.h>
int main()
{
initwindow(400,300); // Abre una ventana grfica de 400x300 pixeles
setbkcolor(1); // set background
cleardevice();
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph(); // Cierra la ventana grfica
return 0;
}

2. Colorear la Pantalla
#include <winbgim.h>
int main()
{
initwindow(400,300); // Abre una ventana grfica de 400x300 pixeles
setbkcolor(1); // color de fondo
cleardevice();
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph(); // Cierra la ventana grfica
return 0;
}

3. Agregar Texto
#include<graphics.h>
#include<stdio.h>
int main(void)
{
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
int x = 200, y = 200;
outtextxy(x, y, "Hola Mundo");
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph();
}
4. Agregar Texto y Dar Color al Texto

#include <winbgim.h>
int main()
{
initwindow(400,300); // Abre una ventana grfica de 400x300 pixeles
setbkcolor(1); // color de fondo
cleardevice();
setcolor(14); // configura el color
outtextxy(50,100,"Mi primer Programa en Grafico");//imprime el texto en grafico
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph(); // Cierra la ventana grfica
return 0;
}

5. Trazar una lnea desde el punto del mouse

#include <winbgim.h>
int main()
{
initwindow(400,300); // Abre una ventana grfica de 400x300 pixeles
moveto(0,0); // Pone el cursor en 0,0
lineto(50,50); // Dibuja una lnea desde 0,0 hasta 50,50
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph(); // Cierra la ventana grfica
return 0;
}

6. Circulo
#include<winbgim.h>
#include<stdlib.h>
main()
{
initwindow(640,480);
circle(100,100,30);
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph();
}
7. Rectangulo

#include<winbgim.h>
#include<stdlib.h>
main()
{
initwindow(640,480);

rectangle(100,100,200,200);
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph();
}

8. Dibujar un triangulo

#include<graphics.h>
#include<stdio.h>
int main(void)
{
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
line(300, 100, 200, 200); // (desde_x,desde_y,to_x,to_y)
line(300, 100, 400, 200);
line(200, 200, 400, 200);
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph();
}
9. Figura con Circulo y rectngulos

#include<winbgim.h>
#include<stdlib.h>
main()
{
initwindow(640,480);
circle(100,100,30);
moveto(50,50);
lineto(100,50);
lineto(100,100);
lineto(50,100);
lineto(50,50);
rectangle(100,100,200,200);
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph();
}

10. Circulos concntricos

#include <graphics.h>

int main()
{
int gd = DETECT, gm;
int x = 320, y = 240, radius;
initgraph(&gd, &gm, "C:\\TC\\BGI");

for ( radius = 20; radius <= 125 ; radius = radius + 20)


{
circle(x, y, radius);
i++;
}
getch();
closegraph();
return 0;
}
11. Funcion senoidal
#include<winbgim.h>
#include<stdlib.h>
#include<math.h>
main()
{

const float pi=3.1415;


initwindow(640,480);
for (int x=0;x<640;x++)
putpixel(x,100+50*sin(2*pi*(float)x/640),15);
system("pause");
closegraph();
}

12. Llenar circulo


#include<graphics.h>
#include<conio.h>

main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");

circle(100, 100, 50);


floodfill(100, 100, WHITE);

getch();
closegraph();
return 0;
}
Rellenar un rectangulo

#include <graphics.h>
#include <conio.h>

main()
{
int d,m;
int left, top, right, bottom;

d=DETECT;
initgraph(&d,&m,"c:\\tc\\bgi");

left = getmaxx() / 2 - 50;


top = getmaxy() / 2 - 50;
right = getmaxx() / 2 + 50;
bottom = getmaxy() / 2 + 50;

setfillstyle(1,4);
rectangle(left,top,right,bottom);
floodfill(getmaxx()/2,getmaxy()/2,15);
getch();

closegraph();

13. Crear una barra

#include<stdio.h>
#include<graphics.h>
#include<conio.h>

int main(){
int gd = DETECT,gm;
initgraph(&gd, &gm, "C:\\TC\\BGI");

/*dibujar una barra */


bar(150, 200, 400, 350);

getch();
closegraph();
return 0;
}
14. Dibujar una barra de grafica

#include<graphics.h>
main() {
int gd=DETECT,gm,maxx,maxy,x,y,button;
initgraph(&gd,&gm,"");
line(80,150,200,150);
line(80,150,80,50);
settextstyle(1,HORIZ_DIR,1);
outtextxy(100,153,"<-X axis");
settextstyle(1,VERT_DIR,1);
outtextxy(60,50,"<-Y axis");
bar(100,100,120,150);
bar(130,120,150,150);
getch();
closegraph();
}

15. Dibujar un Elipse

#include<stdio.h>
#include<graphics.h>
#include<conio.h>

int main(){
int gd = DETECT,gm;
int x ,y;
initgraph(&gd, &gm, "X:\\TC\\BGI");
/* inicializa el elipse al centro de la pantalla */
x = getmaxx()/2;
y = getmaxy()/2;

//outtextxy(x-100, 50, "Usando elipses en C");


/* Dibujar un elipse en la pantalla*/
ellipse(x, y, 0, 360, 120, 60);

getch();
closegraph();
return 0;
}
16. Trabajar con Fuentes
/* settextstyle example */

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

/* the names of the text styles supported */

char *fname[] = { "DEFAULT font", "TRIPLEX font",


"SMALL font", "SANS SERIF_font",
"GOTHIC_font", "SCRIPT font",
"SIMPLEX font", "TRIPLEX SCRIPT font",
"COMPLEX font", "EUROPEAN font",
"BOLD font"};
int main(void)

/* request autodetection */

int gdriver = DETECT, gmode, errorcode;


int style, midx, midy;
int size = 1;

/* initialize graphics and local variables */


initgraph(&gdriver, &gmode, "");

/* read result of initialization */


errorcode = graphresult();
if (errorcode != grOk) { /* an error occurred */
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}

midx = getmaxx() / 2;
midy = getmaxy() / 2;
settextjustify(CENTER_TEXT, CENTER_TEXT);

/* loop through the available text styles */


for (style=DEFAULT_FONT; style<=BOLD_FONT; style++) {
cleardevice();
if (style == TRIPLEX_FONT)
size = 14;
/* select the text style */
settextstyle(style, HORIZ_DIR, size);

/* output a message */
outtextxy(midx, midy, fname[style]);
getch();
}

/* clean up */
closegraph();
return 0;

Algunas de las instrucciones ms empleadas en el ambiente grfico son las


siguientes:

putpixel(x,y,color); ilumina o activa el punto que


corresponde a la coordenada
(x,y) con el color indicado
line(x1,y1,x2,y2); traza una linea a partir del
pinto x1,y1) al punto (x2,y2)
rectangle(x1,y1,x2,y2); construye un rectngulo o
recuadro a partir del punto
(x1,y1) con extremo opuesto
en el punto (x2,y2)
bar(x1,y1,x2,y2); Define un rea rectangular a
partir del punto (x1,y1) y con
extremo opuesto en el punto
(x2,y2). Dicha rea puede
achrarse en diversas formas
circle(x,y,radio); Dibuja un circulo con centro
(x,y) y radio indicado
ellipse(x,y,nguloinicial,angulofinal,radio_x,radio_y); que traza un sector eliptico con
centro en las coordenadas
(x,y) a partir de los valores
dados en grados para un
ngulo inicial y un ngulo final,
con los radios horizontal y
vertical indicados.
bar3d(xi,yi,xd,yd,profundidad,bandera_recorte); traza una barra tridimensional
cuya rea frontal est definida
por el rectngulo determinado
del punto izquierdo(xi,yi) al
punto derecho (xd,yd), mismo
que se proyecta con la
profundidad asignada; la
bandera recorte evita que la
barra sobrepase el puerto
grfico.
pieslice(x,y,ngulo_inicial,ngulo_final,radio); traza y rellena con la trama en
uso un pedazo de pastel o
sector circular con centro en
las coordenadas (x,y) y el radio
indicado.
sector(x,y,ngulo_inicial,ngulo_final,radio_x,radio_y); dibuja y rellena con la trama en
uso un sector eliptico con
centro en las coordenadas
(x,y) y los radios horizontal y
vertical indicados.

El dibujo de lnea, barra de tres dimensiones, pedazos de pastel circular y


sector eliptico puede realizarse con puntos o tres tipos de rayas (estilo); el
grueso de la linea para los circulos y rectngulos puede indicarse normal o
grueso (1 o 3) cuando antes se ha indicado alguna de esas caractersticas

setlinestyle(estilo,modelo,grueso_de_linea);

El valor adjudicado a modelo es un valor entero sin signo.

estilo APARIENCIA VALOR GRUESO DE LINEA


SOLID_LINE continua 0 NORM_WHIDTH
DOTTED_LINE lnea punteada 1
O
CENTER_LINE lnea con rayas 2
finas
DASHED_LINE lnea con rayas 3 THICK_WHIDTH
pequeas
USERBIT_LINE lnea con rayas 4
tipo guin
1 y1

RESPECTIVAMENTE

Vous aimerez peut-être aussi