Programación grafica en DEV-C++ usando la librería no estándar WINBGIM

 

Made in Cali - Colombia

Busca "charlytospage" en Google para encontrarnos

Portada Microcontroladores LabView Assembler Internet Links Proyectos  Foro Criticasl Correo   Comunidal Servicios profesionales  Consejos prácticos Visual Basic Manuales Nuestro Grupo C++ Tienda 

 

Código fuente en ensamblador para microprocesadores Intel

Lenguaje de programación gráfico

Algunos programas de ejemplo, junto con su código fuente

Código fuente y ejemplos en  ANSI C++.

Microcontroladores PIC y Motorola la una bendición para todos.

Cosas que solo aprendes con la experiencia.

Manuales de electrónica y programación.

Webs recomendadas.

Grupo de electrónica y programación

Contratar mis servicios como ingeniero electrónico.

Tu opinión y comentarios acerca de Charlytos’page

Un tablón donde pegar nuestras dudas y resolver las de otros.

Si quieres escribirle a Carlos F. Jimenez

Donde encontrar gente con la capacidad que necesitas.

Módulos electrónicos
Que modulo me seria más útil para la implementación de mis proyectos?
 Interfaz de potencia motores
 Interfaz Motores PAP
 Interfaz de potencia reles
 Interfaz USB-serie
 Interfaz de ultrasonido
 Interfaz USB-paralelo
 Programador PICs
 Sistemas de adquisición


 

 

Aquí puedes encontrar recomendaciones y ayudas para utilizar el DEV-C++, instalar librerías, etc.

 


 

Programación grafica en DEV-C++ usando la librería no estándar WINBGIM

Por: Carlos Fernando Jiménez

Ultima actualización Septiembre 6 de 2006

 

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

 

Ejemplos

 

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

}

 

Esta librería no solo soporta los 16 colores de la librería 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 estaría el indicado el color.

 

El resto de las funciones gráficas funcionan igual que en la librería 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 librería winbgim.h

Función 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 línea desde x1,y1 hasta x2,y2
void lineto (int x, int y) Traza una línea desde la posición 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 librería winbgim

//Gráfica 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 librería winbgim

//Dibujo de un rectángulo, 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 librería 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 librería 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();  

}


 

 Para descargar mas ejemplos:

Emulación de gráficos 3d

Figuras de Lissajous

 

Links Relacionados.

Home page del programador de winbgim

Descargar instalador Winbgim for Dev C++

Descargar copia del manual en pdf

 

 

 

DAC09

Sistema USB de adquisición de datos y control, 10 Canales de PWM,  A/D 10 BITS 38759,69 Muestras por segundo.

 

USB-RS232

 

Interfaz USB – serie RS232 9600, 19200, 38400, 57600, 115200 bps Integración de tecnología USB Para sistemas con comunicación serie RS232

 

Programador de Microcontroladores PIC y EEPROMS

                   

 

Interfaz Puente H

De a sus circuitos digitales capacidad para controlar motores de CD en rangos de 9v a 30v 2.5 Amperios. solo $39.000 pesos

 

Interfaz de potencia 120v 3A

La interfaz TTL-120v3A es un modulo de 4 relevos que permite extender la capacidad de los sistemas digitales con salidas que cumplen con los niveles de voltaje TTL o de 0 a 5 voltios, para controlar sistemas que operan hasta con 120v AC 3A o 24V DC  3 A Solo $59.000 pesos

 

DAC08

sistema de adquisición de datos

 

 

 


No te vayas sin pasar por nuestra portada , para que veas lo nuevo de este sitio.


Preguntas o Comentarios

Portada Microcontroladores LabView Assembler Internet Links Proyectos  Foro Criticasl Correo   Comunidal Servicios profesionales  Consejos prácticos Visual Basic Manuales Nuestro Grupo C++ Tienda