martes, 10 de noviembre de 2015

Programación grafica en DEV-C++

La librería winbgim.h a sido creada originalmente por Konstantin Knizhnik's winbgi shareware  y posteriormente modificada por Mark Richardson  y Michael Main, esta librería tiene como objetivo emular la librería graphics.h de Borland C++ y facilitar algunas funciones del Mouse. La ventaja de esta librería es que nos permite crear aplicaciones gráficas 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 ofrecía una colección de archivos que se debían ubicar en carpetas especiales e incluir ciertos comandos al la configuración del linker y del compilador, esta operación tenia cierta  complejidad y para muchos se convirtió en un dolor de cabeza.
Con el fin de facilitar el uso de esta librería me tome la libertad de realizar un instalador para la versión 4.9.9.2 del Dev C++ que realiza todas las configuraciones necesarias.
Ahora cada ves que queramos realizar un programa con soporte para gráficos solo es necesario seguir los siguientes pasos:
1 - Crear un nuevo proyecto
2 -  Seleccionar una aplicación de consola con gráficos
Y listo!

A continuación algunos ejemplos
Para iniciar el modo gráfico se usa la función void initwindow (int width, int height);

Ejemplo:
 initwindow(400,300); // Abre una ventana gráfica de 400x300 color rgb
Para cerrar el modo gráfico se usa la función  closegraph();
 4.9.9.2
Aqui en esta pagina te indica todo , hasta como instalar y como hacer las graficas en c 
http://www.monografias.com/trabajos94/graficas-funciones-dev-cpp/graficas-funciones-dev-cpp.shtml

Ejemplo

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

EXPLICACION:
Este programa presenta o demuestra el moviemiento de un auto y con los postes en movimiento
#include <winbgim.h>

void waitForLeftMouseClick();

int main()
{
    initwindow(1500,1000); //open a 400x300 graphics window
    
    // delete these lines and replace them with your own code:
    settextstyle(0,0,2);
    for(int i=1;i<=1000;i=i+10){
            setcolor(YELLOW);
    rectangle(20+i,500,200+i,400);
    rectangle(5+i,600,300+i,500);
    circle(60+i,650,50);
    circle(250+i,650,50);
    setcolor(BLUE);
    rectangle(400-i,400,375-i,50);
    rectangle(600-i,400,575-i,50);
    rectangle(800-i,400,775-i,50);
    rectangle(1000-i,400,975-i,50);
    rectangle(1200-i,400,1175-i,50);
    rectangle(460-i,100,300-i,75);
    rectangle(460-i,200,300-i,175);
    rectangle(700-i,100,500-i,75);
    rectangle(700-i,200,500-i,175);
    rectangle(900-i,100,775-i,75);
    rectangle(900-i,200,775-i,175);
    rectangle(1100-i,100,975-i,75);
  
    sleep(50);
    
    setcolor(BLACK);
    rectangle(20+i,500,200+i,400);
    rectangle(5+i,600,300+i,500);
    circle(60+i,650,50);
    circle(250+i,650,50);
    rectangle(400-i,400,375-i,50);
    rectangle(600-i,400,575-i,50);
    rectangle(800-i,400,775-i,50);
    rectangle(1000-i,400,975-i,50);
    rectangle(1200-i,400,1175-i,50);
    rectangle(460-i,100,300-i,75);
    rectangle(460-i,200,300-i,175);
    rectangle(700-i,100,500-i,75);
    rectangle(700-i,200,500-i,175);
    rectangle(900-i,100,775-i,75);
    rectangle(900-i,200,775-i,175);
    rectangle(1100-i,100,975-i,75);
}
    
                
    // while(!kbhit());     // wait for user to press a key
    waitForLeftMouseClick(); // use one or the other of these--not both


    closegraph();        //close graphics window
return 0;
}

void waitForLeftMouseClick()
{
    clearmouseclick(WM_LBUTTONDOWN);
    const int DELAY = 50; // Milliseconds of delay between checks
    int x, y;
    while (!ismouseclick(WM_LBUTTONDOWN))
        delay(DELAY);
    getmouseclick(WM_LBUTTONDOWN, x, y);

}

VIDEO DE REFERENCIA DEL TEMA:https://www.youtube.com/watch?v=sfU_SQanYVI

No hay comentarios:

Publicar un comentario