Dibujos y color en c

kristho
07 de Diciembre del 2005
tengo que hacer este ejercicio..les agradeceria su ayuda...
-Cree un programa que permita dibujar un triangulo y por medio de un menu dar la posibiladad de colorear sus lineas de 4 colores diferentes.
Gracias.

funktroy
07 de Diciembre del 2005
#include <stdio.h>
#include <allegro.h>

main()
{
//Inicializando Allegro y dispositivos
allegro_init();
install_keyboard();
install_mouse();
install_timer();
set_color_depth(8);
set_gfx_mode(GFX_AUTODETECT,800,600,0,0);


while(!key[KEY_ESC])
{
//creando triangulo ............. "negro"
line(screen, 350,250, 110,500, 1);
line(screen, 350,240, 90,510, 1);

line(screen, 110,500, 680,500, 1);
line(screen, 90,510, 710,510, 1);

line(screen, 680,500, 350,250, 1);
line(screen, 710,510, 350,240, 1);

//creando menu.............................
rectfill(screen, 200,70, 600,200, 27);
rectfill(screen, 202,72, 598,198, 22);
text_mode(22);
textprintf(screen, font, 230,100, 43, "PRESIONO A......(ROJO)"); //4
textprintf(screen, font, 230,125, 43, "PRESIONO B......(VERDE)");//47
textprintf(screen, font, 230,150, 43, "PRESIONO C......(AZUL)"); //9
textprintf(screen, font, 230,175, 43, "PRESIONO D......(AMARILLO)");//14

readkey();

if(key[KEY_A])
{
floodfill(screen, 350,248, 4);
readkey();
}

if(key[KEY_B])
{
floodfill(screen, 350,248, 47);
readkey();
}

if(key[KEY_C])
{
floodfill(screen, 350,248, 9);
readkey();
}

if(key[KEY_D])
{
floodfill(screen, 350,248, 14);
readkey();
}

}
allegro_exit();
}
END_OF_MAIN();

ya compadre ... se lo hice (y me di el tiempo) solo por ud .. ojala t guste .... esta hecho en C con la libreria Allegro.h ..............

sta listo .. llegar y usar.... saludos :)

kristho
07 de Diciembre del 2005
Muchas gracias funktroy por tu tiempo y buena voluntad, la verdad es que no me ha ido muy bien con este ejercicio, lo he publicado en muchos foros y eres el primero que me da una respuesta, lamentablemente no me funciona, de hecho me arroja 23 errores, (lo copie y pegue al block de notas y lo guarde con extension cpp sin modificaciones, lo compilo con el turbo c y 23 errores), de todas maneras te reitero mi agradecimiento por tratar de ayudar(algo poco usual), seguire tratando, aun me quedan 2 dias para entregarlo. Gracias.

kike
07 de Diciembre del 2005
Posiblemente los errores se deban a que no tienes allegro.h o que turbo c no lo reconoce.
En todo caso turbo c incluye una biblioteca grafica "graphics.h"
Esta no te ofrece tantas posibilidades como allegro, pero para lo que necesitas es mas que suficiente, como el tema es complicado, sobre todo porque debes iniciar el sistema grafico antes de usarlo, te pego un codigo muy simple que inicia el sistema grafico y despues dibuja un circulo de color azul.

#include< iostream.h>
#include<graphics.h>
void main()
{
//iniciar el sistema grafico////////////////////////////////////////////
int driver,modo,error;
//detectar la tarjeta grafica
detectgraph(&driver,&modo);
//iniciar el sistema
initgraph(&driver,&modo);
//capturar el error
error=graphresult();
if(error<0)
{
cout<<"error del sistema grafico";
return;
}
//utilizar el sistema grafico////////////////////////////////////////////////
//fijar color de fondo de la pantalla negro
setbkcolor(BLACK);
//dibujar un circulo azul
setcolor(BLUE);
circle(50,50,40);
//cerrar el sistema grafico////////////////////////////////////////////////
closegraph();
}
Ok esto deberia funcionar, no lo he probao, pero con este codigo y las macros declaradas en graphics.h para los colores, puedes empezar a trabajar

MACROS:
BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGTMAGENTA, YELLOW, WHITE.

Te aconsejo que mires la ayuda de turbo c++ y busques la biblioteca graphics.h, tiene muchas funciones para tidujar figuras, lineas, etc.