martes, 14 de febrero de 2012

COLOREAR IMAGENES

Hoy les enseñare como colorear una figura


#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
void main(void)
{
int monitor=DETECT, modo=DETECT;
initgraph(&monitor,&modo,"");
setcolor(3); /*SIEMPRE CUANDO QUERRAMOS COLOREAR SIEMPRE VA PRIMERO EL COLOR*/
circle(300,200,150);

while(!kbhit())
{
}
closegraph();
}

En esta parte le enseñare como rellenar una figura de un color.


#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
void main(void)
{
int monitor=DETECT, modo=DETECT;
initgraph(&monitor,&modo,"");
setcolor(3); /*SIEMPRE CUANDO QUERRAMOS COLOREAR SIEMPRE VA PRIMERO EL COLOR*/
circle(300,200,150);

setfillstyle(SOLID_FILL,3); /*esto nos sirve para que tipo de relleno quiera el usuario*/
floodfill(300,200,3);/*aqui tenemos que tener cuidado simpre las cordenadas deben ir dentro de la imagen*/


while(!kbhit())
{
}
closegraph();
}


EJEMPLO 004


Un ejemplo basico del famoso ying-yang


#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
void main(void)
{
int monitor=DETECT, modo=DETECT;
initgraph(&monitor,&modo,"");
circle(300,200,150);

ellipse(300,275,270,90,75,75);
setcolor(15);
circle(320,130,25);
setfillstyle(SOLID_FILL,15);
floodfill(320,130,15);
setcolor(15);
circle(280,275,25);
ellipse(310,125,90,270,75,75);
setfillstyle(SOLID_FILL,15);
floodfill(190,150,15);
setcolor(4);
settextstyle(8,0,6);
outtextxy(180,360,"YING-YANG");
outtextxy(180,362,"YING-YANG");
delay(5);
while(!kbhit())
{
}
closegraph();
}

domingo, 29 de enero de 2012

programacion grafica Basica

Como ya lo habiamos notado, despues de activar nuestro modo grafico, podemos empezar a programar. Aprender modo grafico es facil, y para construir imagenes altamente animadas solo es cuestion de logica y creatividad. Bien COMENZEMOS!!!!!!

FUNCIONES PARA DIBUJAR
  • Line(int x1, int y1, int x2, int y2); //hace una linea. ejemplo:
    • line(100,100,200,100);
  • Circle(int x, int y, int radio);  //hace un circulo;   ejemplo:
    • circle(100,100,50);
  • Arc(int x, int y, int angulo inicial, int angulo final,  int radio);//hace un arco   ejemplo:
    • arc(100,100,0,120,50);
  • Ellipse(int x, int y, int angulo inicial, int angulo final, int radio x, int radio y); //hace una elipse  ejemplo:
    • ellipse(200,200,0,300,100,50);
  • Rectangle(int x izq,int y izq superior, int x der, int y der inferior); //hace un rectángulo  ejemplo:
    • rectangle(100,100,200,150);
  • Putpixel(int x, int y ,int color); //pone un pixel   ejemplo:
    • putpixel(100,200,5);
  • drawpoly(int numero de puntos, int puntos);// dibuja cualquier polígono dependiendo los puntos del programador. ejemplo, si queremos dibujar un triangulo, debe tener puntos+1, o sea debería tener 4 puntos:
    • int puntos[8] = { 300, 50, 500, 300, 100, 300, 300, 50 };//esto son los puntos creados por el programador.
    •  drawpoly(4,puntos); //aqui dibujamos el poligono.

NOTA: Antes de comenzar debe haber ya estudiado o entendido ciertas funciones.Si no es el caso, aquí aprenderemos a utilizarlo.

Primer Programa 001.
como ya sabemos todos, todo programador empieza con el famoso progamita "HOLA MUNDO"

1.-Ingresamos las librerias
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
2.- el cuerpo
void main()
{
int modo=DETECT, monitor=DETECT;//estas dos variables nos detectaran el modo y el tipo de monitor.
initgraph(&monitor,&modo,"");//aqui iniciamos el modo grafico(siempre va al inicio de un programa gráfico)
outtextxy(100,100,"HOLA MUNDO");
while(!kbhit()){}//esto nos sirve para cuando tecleamos una tecla es casi igual al getch(); 
closegraph();//aquí finalizamos el modo grafico(siempre va al final de un programa gráfico)
}

//les deberia quedar asi

Figuras geometricas
para crear nuestras figuras copiamos el mismo codigo del programa anterior, excepto el outtextxy(100,100"HOLA MUNDO");
__________________________________________________________________________________ 
Rectangulo 002

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int modo=DETECT, monitor=DETECT;
initgraph(&monitor,&modo,"");
rectangle(100,100,200,150);
while(!kbhit()){}
closegraph();
}

__________________________________________________________________________________ 
Cuadrado 003

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int modo=DETECT, monitor=DETECT;
initgraph(&monitor,&modo,"");
rectangle(100,100,200,150);
while(!kbhit()){}
closegraph();
}

__________________________________________________________________________________ 
Circulo 004
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int modo=DETECT, monitor=DETECT;
initgraph(&monitor,&modo,"");
circle(300,200,50);
while(!kbhit()){}
closegraph();
}

__________________________________________________________________________________ 
Elipse 005
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int modo=DETECT, monitor=DETECT;
initgraph(&monitor,&modo,"");
ellipse(300,200,0,360,0,360);
while(!kbhit()){}
closegraph();
}

__________________________________________________________________________________ 
Arco 006
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int modo=DETECT, monitor=DETECT;
initgraph(&monitor,&modo,"");
arc(300,200,0,360,0,360);
while(!kbhit()){}
closegraph();
}

__________________________________________________________________________________ 
Poligono irregular 007

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int modo=DETECT, monitor=DETECT;
initgraph(&monitor,&modo,"");
int puntos[8] = { 300, 50, 500, 300, 100, 300, 300, 50 };
drawpoly(4,puntos);
while(!kbhit()){}
closegraph();
}



























NOTA: Esta funcion es media compleja, pero como estamos para ayudarles aqui les explicare.
el int puntos[8]={.............}; son los pares de puntos que tendremos que agregar a nuestro drawpoly y siempre debe ser par, en el drawpoly el primer termino debe ser la mitad que nuestro pares de puntos.

__________________________________________________________________________________ 

sábado, 28 de enero de 2012

Introduccion


 En el modo gráfico existe una enorme cantidad de funciones que realizan desde la tarea mas sencilla como es pintar un píxel, hasta la tarea mas compleja como pudiera ser dibujar un carácter por medio de trazos.

Para trabajar el modo gráfico es necesario incluir la librería graphics.h como hacer uso de la BGI (Borlan Graphics Interphase)

Para usar cualquier función es necesario colocar el adaptador de video en modo grafico y esto se logra a través de la función initgraph(); y al terminares necesario regresar al modo original a través de la función closegraph();

Para iniciar un programa en ambiente gráfico es recomendable correr una subrutina de inicialización de gráficos y detección de errores.

Algunos ejemplos de las funciones que se pueden encontrar en la librería de gráphics.h son:
Line(); circle(); arc(); elipse();rectangle(); ottextxy(); putpixel();
Para saber mas de las funciones de la librería de gráficos lo pueden buscar en el índice de turbo c

NOTA: Para dar de alta en tu computadora el modo de gráficos tienes que hacer los siguientes pasos: OPTIONS ->LINKER->LIBRARIE->seleccionar GRAPHICS LIBRARY
EJEMPLO:
#include<graphics.h>
#include<conio.h>
#include<math.h>
int main(void)
{
 clrscr();

 double fx;
 int graphdriver=DETECT,graphmode;
 initgraph(&graphdriver,&graphmode,"..\\bgi");
 outtextxy(30,30,”GRAFICACION DE SENO “);
 setbkcolor(RED);
 for (int x=0;x<=90;x++)
 {
   fx=(1+sin(x))*40+200;
  putpixel(x*15,fx,YELLOW);
  }
  setcolor(BLUE);
 line(310,100,310,400);
 line(100,240,500,240);
  getch();
  closegraph();
 return 0;
}





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)







TAMAÑO O RESOLUCION DE LA PANTALLA  640X480 PIXELS

line(int x1, int y1, int x2, int y2); DIBUJA UNA LINEA

rectangle(int left, int top, int right, int bottom); DIBUJA UN RECTANGULO
rectangle(izqierda,arriba,derecha,abajo);

putpixel(int x, int y, int color); PINTA UN PIXEL

outtextxy(int x, int y, char far *textstring); DIBUJA TEXTO
outtextxy(100,100,”Programa 1”);

settextstyle(int font, int direction, int charsize); TIPO DE LETRA A USAR
settextstyle(tipo letra, direccion, tamaño letra);

TIPOS DE LETRA (FONT)

0   DEFAULT_FONT       
1   TRIPLEX_FONT        
2   SMALL_FONT            
3   SANS_SERIF_FONT  
4   GOTHIC_FONT           

DIRECTION

0   HORIZ_DIR   
1   VERT_DIR    

settextjustify(int horiz, int vert); JUSTIFICAR TEXTO

HORIZ  

0   LEFT_TEXT     IZQUIERDA
1   CENTER_TEXT   CENTRADO
2   RIGHT_TEXT   DERECHA

VERT   

0   BOTTOM_TEXT  ABAJO
1   CENTER_TEXT   CENTRADO
2   TOP_TEXT      ARRIBA

RELLENADO DE FIGURAS

floodfill(int x, int y, int border); RELLENAR FIGURA

setfillstyle(int pattern, int color); TIPO DE RELLENO Y COLOR A USAR

TIPOS DE RELLENADO(FILL PATTERNS)

0   EMPTY_FILL       
1   SOLID_FILL       
2   LINE_FILL        
3   LTSLASH_FILL     
4   SLASH_FILL       
5   BKSLASH_FILL     
6   LTBKSLASH_FILL   
7   HATCH_FILL       
8   XHATCH_FILL      
9   INTERLEAVE_FILL  
10 WIDE_DOT_FILL   
11 CLOSE_DOT_FILL  
12 USER_FILL       

COLORES

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         
128  BLINK       

viernes, 27 de enero de 2012

Como empezar

primero antes de empezar a programar, debemos activar el modo grafico a nuestro borlnad C, para ello debemos seguir los siguientes pasos
1.-abrir, borland C++ o turbo C++ (recomendable el de la version antigua ), en mi caso yo abri el turbo.
2.-damos click en file.
3.- vamos a change dir...











4.-Damos doble click a la carpeta Borland C, en mi caso a mi me apareció TURBOC3, y nos vamos a la carpeta BGI. Y después ok






















5.- Damos click a Options, luego damos click en Linker, después en Libraries.



















6.-Y para terminar, damos click en Graphics Library. Y presionamos ok.

nota: generalmente en el TurboC++ el Graphics Library viene activado automaticamente, pero por demostracion lo active.

Programacion Grafica

Bienvenidos a nuestra pagina, aquí aprenderemos como programas imágenes en borland C. Espero que sea de su agrado.