You are on page 1of 5

[ Programacin grfica en DEV-C++ usando la librera

no estndar WINBGIM ]

Guarpida

[http://www.openboxer.260mb.com/c.php]

Julio

09

Programacin grfica en DEV-C++ usando la librera


no estndar WINBGIM
Gua rpida

La librera winbgim.h a sido creada originalmente por Konstantin Knizhnik's winbgi shareware
y posteriormente modificada por Mark Richardson y Michael Main, esta librera tiene como
objetivo emular la librera graphics.h de Borland C++ y fcilitar algunas funciones del Mouse.
La ventaja de esta librera es que nos permite crear aplicaciones grficas con compiladores GNU
tales como el ambiente de desarrollo Dev C++ de la misma manera como se crean en el
compilador comercial Borland C++.
Originalmente el autor nos ofreca una coleccin de archivos que se deban ubicar en carpetas
especiales e incluir ciertos comandos al la configuracin del linker y del compilador, esta
operacin tenia cierta complejidad y para muchos se converta en un dolor de cabeza.
Con el fin de facilitar el uso de esta librera se decidi realizar un instalador para la versin
4.9.9.2 del Dev C++ que realiza todas las configuraciones necesarias.
Ahora cada ves que queramos realizar un programa con soporte para grficos solo es
necesario seguir los siguientes pasos:

1.- Crear un nuevo proyecto

2.- Seleccionar una aplicacin de consola con grficos

Y listo! A continuacin algunos ejemplos:


Para iniciar el modo grfico se usa la funcin void initwindow(int width,int height);
Ejemplo:
initwindow(400,300);// Abre una ventana grfica de 400x300 color rgb
Para cerrar el modo grfico se usa la funcin closegraph();
Ejemplos;
#include <winbgim.h>
int main()
{
initwindow(400,300);
moveto(0,0);
lineto(50,50);
while(!kbhit());
closegraph();
return 0;
}

//Abre una ventana grfica de 400x300 pixeles


//Pone el cursor en 0,0
//Dibuja una lnea desde 0,0 hasta 50,50
//Espera a que el usuario presione una tecla
//Cierra la ventana grfica

Esta librera no solo soporta los 16 colores de la librera graphics.h de Borland mediante las
constantes BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY,
LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE, sino que
es posible usar colores rgb, lo cual nos da alrededor de 16 millones de colores incrustando el
macro "COLOR(r,g,b)" en donde originalmente estara el indicado el color.
El resto de las funciones grficas funcionan igual que en la librera original graphics.h y
pueden encontrarse en la ayuda del Turbo C++ de Borland o e cualquier manual de este
mismo.

Funcin

Tarea

void circle (int x, int y,


int radius);

Dibujauncirculoenx,yderadio
radius

void cleardevice (void);

Borralapantalla

void line (int x1, int y1,


int x2, int y2);

Trazaunalneadesdex1,y1hasta
x2,y2

void lineto (int x, int y);

Trazaunalneadesdelaposicin
actualdecursorhastax,y

void putpixel (int x, int y,


int color);

Dibujaunpixelenx,ydecolor
color

void rectangle (int left, int


top, int right, int bottom);

Dibujaunrectngulodeesquinas
top,leftyright,bottom

void setcolor (int color);

Estableceelcoloractual.

int mousex(void);

RetornalacoordenadaxdelMouse
relativaalaesquinasuperior
izquierda

int mousey(void);

RetornalacoordenadaydelMouse
relativaalaesquinasuperior
izquierda>

Ms Ejemplos:
//Ejemplo del uso de la librera winbgim
//Grfica de sen(x)
#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),WHITE);
system("pause");
closegraph();
}
/*----------------------------------------------------*/
//Ejemplo del uso de la librera winbgim
//Dibujo de un rectngulo, un circulo y un cuadrado
#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);
system("pause");
closegraph();
}
/*------------------------------------------*/
//Ejemplo del uso de la librera winbgim
//Pinta toda la pantalla con colores rgb
#include <winbgim.h>
#include <stdlib.h>
#include <iostream.h>
main()
{
int azul;
const float pi=3.1415;
cout << "Valor para el azul? ";
cin >> azul;
initwindow(255,255);
for (int y=1;y<255;y++)
for(int x=1;x<256;x++)
putpixel(x,y,COLOR(x,y,0));
system("pause");
closegraph();
}

You might also like