Graficos turbo c

Solo disponible en BuenasTareas
  • Páginas : 10 (2319 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de enero de 2012
Leer documento completo
Vista previa del texto
HACER GRAFICOS EN C++ ó TURBO C

Para realizar graficas en C++ o Turbo C, primero se debe de colocar la librería #include<graphics.h>
Después se tiene que activar el modo grafico, como sabemos por defecto cuando se compila en Turbo C la pantalla esta en texto. Para hacer esto debes poner este código prediseñado:
void modo _ gráfico()
{
    int drive=DETECT,a,error;    initgraph(&drive,&a,"ruta"); //en ruta es la dirección donde esta tu directorio de 
                                         //turboBGI por ejemplo C:\tc\bgi
    error=graphresult(); //verifica si hay algún error al cargar en modo grafico
    if (error != grOk) //la condición si hay error
    {
        printf ("Error al cargar modo grafico");
        printf ("\nPresione una tecla para continuar");        system("pause");
        exit(1);
    }
}

En el modo grafico se pueden realizar diferentes funciones como: dibujar una línea, un rectángulo, un círculo, una elipse, un punto, poner un texto, cambiar color a todos los objetos anteriormente mencionados. Antes de continuar debes saber cuales es la tabla de correspondencia de colores que maneja Turbo C.

Constante Valor-------------------------------------
BLACK 0
BLUE 1
GREEN 2
CYAN 3
RED 4
MAGENTA 5
BROWN 6
LIGHTGRAY 7
DARKGRAY 8
LIGHTBLUE 9
LIGHTGREEN 10
LIGHTCYAN 11
LIGHTRED 12
LIGHTMAGENTA 13
YELLOW 14
WHITE 15

DIBUJAR UNA LINEA

Para dibujar una línea hay de dos formas, la primera es con una función prediseñada en Turbo C y la segunda es que cada uno la puede diseñar, aunque esta es más complicada.1er. FORMA DE DIBUJAR UNA LINEA

Para esta forma solo debes colocar la siguiente función, esta es la sintaxis:
line(x1,y1,x2,y2,color);
x1 y y1 son las coordenadas del punto inicial, x2 y y2 son las coordenadas del punto final. Si quieres editar la línea para que tenga color debes anteponer la función setcolor(color);, donde color es el color en letras o numero correspondiente conforme la tablaque puse al inicio. Para un ejemplo mas claro:
setcolor(BLUE); // o puede ser setcolor(1);
line(300, 200, 400, 300);
2da. FORMA DE DIBUJAR UNA LINEA

La segunda forma de dibujar la línea es mas complicada porque toda presentación por la pantalla son mediante píxeles, pues se tiene que diseñar un modulo que nos dibuje los píxeles y otro modulo donde me diga donde dibujar la línea. Para estoexisten dos algoritmos que son: el algoritmo de Bresenham y el algoritmo de DDA. Por recomendación el algoritmo de Bresenham es mas seguro.

Modulo que dibuje un píxel:
void TrazarPunto(int x,int y, int color)
{
  union REGS reg;
  int xx,yy;
  reg.h.ah = 0xc;
  reg.h.al = color;
  reg.x.bx = 0;
  xx = x + 320; //esto puede variar
  reg.x.cx = xx;
  yy = 240 - y; //esto puede variar  reg.x.dx = yy;
  int86(0x10,®,®);
}
Algoritmo Bresenham:
void linBres(int xi, int yi, int xf, int yf, int color)
{
    int t, distancia;
    int xerr =0, yerr=0, delta_x, delta_y;
    int incx, incy;

    delta_x = xf-xi;
    delta_y = yf-yi;

    if(delta_x>0)
      incx = 1;
    else if(delta_x==0)
      incx = 0;
    else incx = -1;

    if(delta_y>0)      incy = 1;
    else if(delta_y==0)
      incy = 0;
    else incy = -1;

    delta_x = abs(delta_x);
    delta_y = abs(delta_y);

    if(delta_x>delta_y)
      distancia = delta_x;
    else distancia = delta_y;

    for(t=0; t<=distancia+1; t++)
        {
            trazarPunto(xi,yi,color);
            xerr += delta_x;
            yerr += delta_y;
            if(xerr>distancia)              {
                  xerr -= distancia;
                  xi = xi+incx;
              }
            if(yerr>distancia)
              {
                    yerr -= distancia;
                    yi = yi+incy;
              }
        }
}
Algoritmo DDA
void DDA(int x1,int y1,int x2,int y2,unsigned char color)
{
  int dx,dy,sdx,sdy,px,py,dxabs,dyabs,i;...
tracking img