Вы находитесь на странице: 1из 5

Programacin grafica en DEV-C++ usando la librera no estndar WINBGIM

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 facilitar 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
tena cierta complejidad y para muchos se convirti en un dolor de cabeza.
Con el fin de facilitar el uso de esta librera me tome la libertad de realizar un instalador para la
versin 4.9.9.2 del Dev C++ que realiza todas las configuraciones necesarias.
Ahora cada vez 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
ejemplos

continuacin algunos

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

// 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;
}

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 al rededor 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.

Funciones principales de la librera winbgim.h


Funcin

Tarea

void circle (int x, int y, int radius);

Dibuja un circulo en x,y de radio radius

void cleardevice (void);

Borra la pantalla

void line (int x1, int y1, int x2, int y2);

Traza una lnea desde x1,y1 hasta x2,y2

void lineto (int x, int y)

Traza una lnea desde la posicin actual de cursor hasta x,y

void putpixel (int x, int y, int color);

Dibuja un pixel en x,y de color color

void rectangle (int left, int top, int right, int bottom);

Dibuja un rectangulo de esquenas top,left y right,bottom

void setcolor (int color);

Establece el color actual.

int mousex(void)

Retorna la coordenada x del Mouse relativa a la esquina superior izquierda

int mousey(void)

Retorna la coordenada y del Mouse relativa a la esquina superior izquierda

//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


//Dibujar con el mouse
#include<winbgim.h>
#include<stdlib.h>
#include<iostream.h>
main()
{
const float pi=3.1415;
initwindow(640,480);
int a=0,x,y;
while(a==0)
{
x=mousex( );
delay(1);
y=mousey( );
delay(1);

if (
lineto(x,y);
};
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();
}