Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Compilado y linkado
Para compilar un programa que use esta biblioteca hay que incluir el fichero de cabecera
winbgim.h:
Para linkar un programa que use esta biblioteca hay que enlazar la biblioteca libconio.a y
las bibliotecas libgdi32.a y libuser32.a. Para ello han de incluirse los siguientes parmetros
a la hora de enlazar: -lbgi -lgdi32 -luser32.
Las rutinas
Rutinas de inicializacin
void initwindow(int ancho, int alto);
Esta rutina hay que llamarla antes que cualquier otra de esta biblioteca, ya que inicializa el
sistema grfico y crea un ventana grfica del tamao especificado en los parmetros. El
sistema de referencia empieza en las coordenadas 0,0, que representa la esquina superior
izquierda, por lo que el eje y crece hacia la parte de abajo de la ventana.
void closegraph(void);
Al acabar de trabajar en el modo grfico, hay que llamar a esta rutina, que libera toda la
memoria reservada por el sistema grfico y devuelve la pantalla al modo en el que estaba
antes de inicializar el modo grfico.
Rutinas de escritura
void cleardevice(void);
Esta rutina borra la pantalla grfica rellenndola del color de fondo y mueve la posicin de
dibujo al origen de la pantalla, la posicin (0,0).
void line(int x1, int y1, int x2, int y2);
Esta rutina dibuja una lnea entre los puntos (x1, y1) y (x2, y2), con el color, el estilo de
lnea y el ancho actuales. No mueve la posicin de escritura.
void circle (int x, int y, int radius);
Esta rutina dibuja un crculo en el color de dibujo actual cuyo centro est en la posicin (x,
y) y de radio r.
void arc (int x, int y, int stangle, int endangle, int radius);
void bar(int izq, int arriba, int derecha, int abajo);
void bar3d (int left, int top, int right, int bottom, int depth, int
topflag);
void ellipse (int x, int y, int stangle, int endangle, int xradius, int
yradius);
void fillellipse (int x, int y, int xradius, int yradius);
void fillpoly (int numpoints, int *polypoints);
void pieslice (int x, int y, int stangle, int endangle, int radius);
void rectangle (int left, int top, int right, int bottom);
void sector (int x, int y, int stangle, int endangle, int xradius, int
yradius);
Esta rutina escribe una cadena de caracteres en pantalla, usando el tipo de letra, la direccin
y el tamao actuales.
void putpixel(int x, int y, int color);
Esta rutina lee un carcter de la pantalla grfica sin esperar que se pulse la tecla de nueva
lnea. Para las teclas extendidas, primero se lee el valor 0 y, en una segunda lectura, se lee
el valor correspondiente a cada tecla. Por ejemplo:
#define
#define
#define
#define
#define
#define
#define
#define
KEY_HOME
KEY_END
KEY_UP
KEY_LEFT
KEY_RIGHT
KEY_DOWN
KEY_F1
KEY_F2
71
79
72
75
77
80
59
60
//
//
//
//
//
//
//
//
tecla Inicio
tecla Fin
cursor hacia arriba
cursor hacia la izquierda
cursor hacia la derecha
cursor hacia abajo
tecla de funcion F1
tecla de funcion F2
grfica.
unsigned getpixel (int x, int y);
Esta rutina hace que el programa se pare durante el nmero de milisegundos que se pasa
como parmetro.
int kbhit (void);
Esta rutina devuelve 0 si no se ha pulsado ninguna tecla desde la ltima lectura y un valor
distinto de 0 en caso contrario.
BLUE
MAGENTA
LIGHTBLUE
LIGHTMAGENTA
GREEN
BROWN
LIGHTGREEN
YELLOW
CYAN
LIGHTGRAY
LIGHTCYAN
WHITE
La otra manera es formar un color indicando los tonos de rojo, azul y verde con valores
entre 0 y 255. Esto se hace con la macro COLOR(r, g, b), donde los tres parmetros
indican el tono de cada color.
http://www.cs.colorado.edu/ main/bgi/doc/bgi.html
Ejemplo
Para compilar un programa con WinBGI usando Dev-Cpp es ms cmodo hacer un
proyecto. Para hacer un patrn de proyectos que permita compilar con WinBGI, antes de
arrancar el compilador, copia winbgi_appl.template y winbgim_cpp.txt en el directorio
Templates del compilador. Cuando vayas a hacer un programa que maneje la winbgim, abre
un proyecto de tipo "winbgi appl".
El fichero winbgim.h hay que copiarlo en el directorio Include del compilador y el fichero
libbgi.a hay que copiarlo en el directorio Lib del compilador.
El siguiente programa dibuja un crculo por la pantalla circularmente siguiendo la pulsacin
de los cursores. El programa acaba cuando se pulsa la tecla ESC, que corresponde al
carcter 27.
#include <winbgim.h>
// definicion de constantes
const int TAM_VEN_X = 700;
const int TAM_VEN_Y = 700;
const int RADIO_CIRCULO = 10;
using namespace std;
int main() {
while (!fin);
closegraph();
return 0;
}
Ejemplos
#include <winbgim.h>
int main()
{
initwindow(400,300);
moveto(0,0);
lineto(50,50);
while(!kbhit());
closegraph();
return 0;
}
lineto(50,100);
lineto(50,50);
rectangle(100,100,200,200);
system("pause");
closegraph();
}
}
i
C++
https://mega.co.nz/#F!sVxlRI7B!uBTLr3GiGW0dokYq9e4SgQ