Академический Документы
Профессиональный Документы
Культура Документы
Irma Prado
Gráficos en DevCpp
Para trabajar en el entorno gráfico, necesita tener instalada la librería winbgim de su
versión de DevCpp, o no funcionará.
Si no encuentra, significa, que no lo tiene instalado, por lo que tiene que instalar el
archivo winbgim.exe . Busque en Internet, una versión acorde a la que está
utilizando con DevCpp e instale.
En los archivos de la semana del aula virtual, tiene una opción que puede
descargarla e instalarla. Se instala haciendo clic en el archivo winbgim.exe.
Gráficos en wxDevCpp Por M.Sc. Irma Prado
Ahora cada vez que quiera realizar un programa con soporte para gráficos solo es
necesario seguir los siguientes pasos:
Inicialmente aparece en pantalla un ejemplo en modo gráfico del manejo del mouse,
borre el código o puede crear otro archivo vacío del mismo proyecto
Ejemplo 0.- Copie el siguiente código, luego salvar haciendo clic en el ícono del disquete:
#include <winbgim.h>
//using namespace std;
main()
{
initwindow(400,300); // Abre una ventana gráfica de 400x300 pixeles
moveto(0,0); // Pone el cursor en 0,0 ( no se ve)
lineto(250,50); // Dibuja una línea desde 0,0 donde quedó el cursor, hasta 50,50
circle(250,150,30); //dibuja un circulo en la columna250,fila150, con radio de 30
while(!kbhit()); // Espera a que el usuario presione una tecla
closegraph(); // Cierra la ventana gráfica
}
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");
while(!kbhit());
closegraph();
}
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
Traza una línea desde la posición actual de
void lineto (int x, int y)
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 Dibuja un rectangulo de esquenas top,left y
bottom); right,bottom
void setcolor (int color); Establece el color actual.
Retorna la coordenada x del Mouse relativa
int mousex(void)
a la esquina superior izquierda
Retorna la coordenada y del Mouse relativa
int mousey(void)
a la esquina superior izquierda
int x,y,r;
do{
cout<<"valor de x? ";
cin>>x;
}while(x<=50); //no negativos y como mínimo 50
do{
cout<<"valor de y? ";
cin>>y;
}while(y<=50); //idem
do{
cout<<" Radio? ";
cin>>r;
}while(r<=50);
initwindow(640,480);
setcolor(5); //agregamos un color
circle(x,y,r);
while(!kbhit()); //esperamos hasta que digiten una tecla
closegraph();
}
#include<iostream>
using namespace std;
main()
Gráficos en wxDevCpp Por M.Sc. Irma Prado
{
int x,y,c;
initwindow(600,700);
for(int i=1;i<=5000;i++)
{
do{
x=rand();
}while(x>600); //ancho de la pantalla 600
do{
y=rand();
}while(y>700); //alto de la pantalla
do{
c=rand();
}while(c>20); //hasta 20 colores
putpixel(x,y,c);
}
while(!kbhit()); //esperamos hasta que digiten una tecla
closegraph();
}
initwindow(600,700);
setcolor(5);
settextstyle(11,3,33); //tipo de letra, direccion, tamaño
outtextxy(250,200,"viva Bolivia");
setcolor(3);
settextstyle(7,0,2);
outtextxy(100,150,"toda la vida");
settextstyle(7,1,6);
outtextxy(300,300,"Amigo mio ");
while(!kbhit()); //esperamos hasta que digiten una tecla
closegraph();
}
initwindow(600,700);
Gráficos en wxDevCpp Por M.Sc. Irma Prado
setcolor(5);
arc(200,400,0,110,120);//xcentro,ycentro,angulo inicial,angulo final,radio en x
while(!kbhit()); //esperamos hasta que digiten una tecla
closegraph();
}
initwindow(600,700);
setfillstyle(11,2); //tipo de relleno, color que no pasa
bar(100,200,250,300); //una barra colorida, se dan puntos extremos
while(!kbhit()); //esperamos hasta que digiten una tecla
closegraph();
}
main()
{
initwindow(600,700);
setcolor(2);
circle(200,300,100); //circulo
setfillstyle(11,2); //tipo de relleno, color q
floodfill(200,300,2); //punto donde inicia a pintar y color que no pasa sobreescribe
while(!kbhit());
setfillstyle(4,6); //tipo de relleno, color
floodfill(2,1,2); //x,y y color que no sobreescribe
system("pause"); //esperamos hasta que digiten una tecla
closegraph();
}
0 || BLACK
1 || BLUE
2 || GREEN
3 || CYAN
4 || RED
5 || MAGENTA
6 || BROWN
7 || LIGHTGRAY
8 || DARKGRAY
9 || LIGHTBLUE
10 || LIGHTGREEN
11 || LIGHTCYAN
12 || LIGHTRED
13 || LIGHTMAGENTA
14 || YELLOW
15 || WHITE
#include<winbgim.h>
#include<stdlib.h>
#include<iostream>
///varios circulos
using namespace std;
main()
{
int n,r=50;
cout << "total de circulos? ";
cin >> n;
initwindow(400,400);
setcolor(4);
settextstyle(3,0,4);
outtextxy(10,50,"circulos concentricos");
for (int y=1;y<=n;y++)
{ setcolor(y);
circle(200,200,r);
r=r+30;
}
system("pause");
closegraph();
}
Ejemplo 15.-
//---------------------------------------------------------------------------------
Gráficos en wxDevCpp Por M.Sc. Irma Prado
#include<winbgim.h>
#include<stdlib.h>
#include<iostream>
//programa oara graficar una recta y=x+5
using namespace std;
main()
{
initwindow(400,400);
//eje x e y
int y,x1,y1;
setcolor(9);
moveto(200,0);
lineto(200,400);
moveto(0,200);
lineto(400,200);
//el centro en la pantalla es 200,200
setcolor(2);
for (int x=-100;x<=100;x++)
{
y=x+5;
if (x==-100) moveto(x+200,200-y); //ubica el cursor en la primera posicion
lineto(x+200,200-y);
}
while(!kbhit());
closegraph();
}
#include <winbgim.h>
#include<iostream>
/* programa util para el ahorcado*/
using namespace std;
int main()
{ int ventana_g1;
int opcion=0;
initwindow(500,500); //habilitamos una ventana de graficos
ventana_g1=getgraphmode();
setwindowtitle("Ventana menu de opciones ");
do{
Gráficos en wxDevCpp Por M.Sc. Irma Prado
switch (opcion){
case 1: setgraphmode(ventana_g1); //regresamos a la ventana de graficos
setcolor(RED);
outtextxy(200,180,"1");
setcolor(BLUE);
setlinestyle(3,2,4);
rectangle(50,250,430,450);
setcolor(MAGENTA);
outtextxy(150,230,"RECTANGULO");
settextstyle(0,0,1);
delay(100);
// outtextxy(20,470,"digite una tecla para continuar...");
break;
case 2: setgraphmode(ventana_g1); //regresamos a la ventana de graficos
outtextxy(200,180,"2");
setcolor(BLUE);
setlinestyle(3,2,4);
circle(250,350,60);
setcolor(MAGENTA);
outtextxy(200,230,"CIRCULO");
settextstyle(0,0,1);
delay(100);
// outtextxy(20,480,"digite una tecla para continuar...");
Gráficos en wxDevCpp Por M.Sc. Irma Prado
break;
}
if(opcion!=3)
system("pause");
}while(opcion!=3);
closegraph(); //close graphics window
return 0
}
#include<winbgim.h>
//proceso de captura
//rectangle(90,190,310,410); //importante para saber qué se está capturando
getimage(90,190,310,410,p);
clearviewport(); //limpia pantalla en modo gráfico
while(!kbhit());
closegraph();
}