graficos en C++
ICOMO HACERLO:
Para realizar gráficos en C++ necesitamos poner el sistema en modo gráfico. Para ello debemos incluir a nuestro programa la biblioteca de gráficos GRAPHICS.H
#include <graphics.h>
Para inicializar el modo gráfico se utiliza la función initgraph() y para detenerlo la función closegraph(). A la función initgraph se le deben pasar 3 argumentos que permitirán detectar de forma automática la placa de video y fijar el modo de video más alto posible: int driver=DETECT,
modo; initgraph(&driver,&modo,”C:\\TC\\BGI”);
El primer parámetro (&driver) es asignado a DETECT, por la tanto la función detectgraph() es llamada, y un dispositivo y modo gráfico (segundo parámetro) apropiados serán seleccionados.
El tercer parámetro especifica el directorio donde los dispositivos gráficos están localizados.
Si la función initgraph() falla, puede interceptarse un código de error e informar al usuario de dicho problema: if (graphresult()!= grOk) { cout << “Error al iniciar el modo gráfico, el programa finalizará”; getch(); exit (1); } De ahora en adelante es posible utilizar cualquier función gráfica en nuestro programa. Para finalizar el modo gráfico ejecutamos la siguiente instrucción: closegraph(); Generalmente al iniciar el modo gráfico se dispone de una resolución de 640x480.
Es decir disponemos de 640 pixeles en el eje x y 480 pixeles en el eje y.
Para comprobar esto, podemos hacer uso de la funciones getmaxx() y getmaxy() que devuelven el máximo píxel del eje x e y respectivamente. cout<<”Resolución: “ << getmaxx() << “x” << getmaxy(); En caso de contar con una resolución de 640x480, la línea de código anterior mostraría en pantalla lo siguiente: Resolución: 639x479 Esto se debe a que el último píxel de eje x es 639, y el último píxel del eje y es 479, ya que ambos ejes comienzan en el píxel 0.
COMO ESTABLECER COLORES:
Para seleccionar el color de fondo en modo grafico debemos utilizar la función setbkcolor() y para establecer el color de dibujo setcolor(). Para limpiar la pantalla en modo gráfico se utiliza la función cleardevice() que dejará la pantalla con el color establecido en setbkcolor().
FUNCIONES QUE PODEMOS UTILIZAR:
rectangle (int X1, int Y1, int X2, int Y2);
Dibuja un rectángulo sin relleno en la pantalla marcado por los puntos (X1, Y1) y (X2, Y2), donde X1 es el extremo izquierdo del rectángulo, Y1 es el extremo superior, X2 es el extremo derecho e Y2 el extremo inferior del rectángulo. rectangle (100, 200, 300, 400);
circle (int X, int Y, int radio); Dibuja un circulo (cuyo tamaño de radio está dado por la variable radio) en la pantalla con centro en los puntos (X, Y). circle (100, 100, 10);
line (int X1, int Y1, int X2, int Y2); Dibuja una línea recta iniciando en los puntos X1, Y1; concluyendo en X2, Y2. line (100, 200, 300, 400);
ellipse (int X, int Y, int stangle, int endangle, int xradius, int yradius); Dibuja un elipse con centro en los puntos X, Y. stangle y endangle indican el ángulo inicial y final del arco elíptico a dibujar. Para ello se toma como referencia la siguiente figura: C++ Guía Práctica: Modo Gráfico. Desarrollo de Aplicaciones y Manipulación de Datos. Prof: Mileti 100 200 400 300 100 100 100 200 400 300 0 grados 90 grados 180 grados 270 grados 360 grados
ESTRUCTURA DEL PROGRAMA
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
VARIABLES PARA INICIALIZAR MODO GRAFICO
int gdriver = DETECT, gmode, errorcode;
INICIALIZAR MODO GRAFICO
initgraph(&gdriver, &gmode, "");
DETECTA SI HAY ALGUN ERROR PARA USAR MODO GRAFICO
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
line(0, 0, 50,50 ); DIBUJA UNA LINEA
getch();
closegraph(); CERRAR MODO GRAFICO
return 0;
}
FUNCIONES PARA DIBUJAR
cleardevice(void); LIMPIA LA PANTALLA
setcolor(int color); COLOR DE LINEA
setbkcolor(int color); COLOR DE FONDO (PANTALLA)
CREAR ANIMACIONES:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int x;
float pi=3.1416;
float grados,y;
grados=(2*pi)/360;
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
for(x=0;x<360;x++){
y=sin(x*grados);
y=y*100;
putpixel(x+100,y+100,5);
}
/* clean up */
getch();
closegraph();
return 0;
}
No hay comentarios:
Publicar un comentario