Programación General > C/C++
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
kenshin:
Alguien podría indicarme cómo se puede poner un pixel en la pantalla...la idea es, una vez que sepa como hacerlo, crear una función que meta aleatoriamente pixels en pantalla (a lo mejor de diferentes colores), para simular el espacio o algo así...GRACIAS!!
(Apuesto que Tenesor me contesta:), eres una máquina tío!) ;)
tenesor:
JAJAJAJAJAJAJAJA, gracias por el alago, pero me parece que no soy tan bueno como crees:) todavia me falta muchisimo que aprender y cometo muchisimos fallos tontos (ejemplo, el programita de coger los numeros:))
Pero bueno, en este caso creo que lo tengo...
Para dibujar un pixel se ha de entrar en el modo gráfico, una desesperacion para algunos, un alago para otros:)
para entrar en el modo gráfico debes poner lo siguiente:
-----------------------------------------
int tarjeta, modo, errorgraph;
detectgraph(&tarjeta,&modo);
initgraph(&tarjeta,&modo,"Path del EGAVGA.BGI");
errorgrpah=graphresult( );
if (errorgraph)
{
printf("%s",grapherrormsg(errorgraph));
}else
{
// sentencias
closegraph();
}
-------------------------------------------
Ok, ya esta el modo gráfico inicializado, ahora te explico esto que he puesto.
El "detectgraph" mira si hay una tarjeta gráfica instalada (aunque en la actualidad es practicamente seguro que hay una, se ha de poner).
El "initgraph" inicia el modo gráfico. Lo de el "path del EGAVGA.BGI" es el path donde esta el archivo EGAVGA.BGI. Que yo recuerde, en el Turbo C esta en la "directorio del turbocbgi" Si no usas TC, buscalo que estará por ahi:)
La "graphresult" devuelve un entero que es 0 si no hay error en el modo gráfico y un nº negativo si hay alguno. El int que retorna se lo asociamos a una varible int (errorgraph).
Con el grapherrormsg(errorgraph) devuelve un mensaje de error con el error ocurrido. Si no ha habido ningun error, hace el bloque de sentencias ... y luego closegraph. Este closegraph CIERRA el modo gráfico.
Ahora que ya sabes como inicializar el modo gráfico pasamos a dibujar un pixel:)
Para dibujar un pixel no hay nada mas simple que:
putpixel(x,y,color)
Donde X e Y son los enteros que indican las cordenadas. X = ANCHO pantalla e Y es el ALTO de pantalla
Las tablas de color no se cuales son, supongo que las tendrás por internet, o si tienes espiritu aventurero, prueba metiendo numeros del 0 al 17 o 18 (me parece, no estoy seguro, pero por ahi andaba...)
Pero he aqui el primer problema, como saber cual es el X maximo y el Y maximo??? pues con otra funcion:)
x=getmaxx();
y=getmaxy();
Estas de aqui son otras funciones que recuerdo, si quieres mas ya buscare por programas que tenga hechos en modo gráfico y te las paso por mail
Para borrar la pantalla, simplemente es:
cleardevice( );
Para dibujar una linea:
line(x1,y1,x2,y2); (del punto x1 al x2 y del punto y1 al y2)
Para dibujar un circulo:
circle(x,y,radio);
Para escribir texto:
outtextxy(x,y,"texto");
Pues ya sabes todo lo que se sobre el modo gráfico:D
SEGURO QUE TENGO ALGUN ERROR!!! si alguien lo saca, que lo escriba, no me importaria lo mas minimo.
Y que nadie tome el foro como una competicion de mentes!!! Los foros estan para que la gente comparte lo que sabe, no para competir entre nosotr@s. Por lo menos eso pienso...
Saludos,
Tenesor
[Modificado el 2/20/02 por tenesor]
kenshin:
Gracias Tenesor, voy a probar ahora mismo...
Tu propuesta de plantearnos retos y todo eso, me parece una buena idea, ya he puesto mi código a tu primer problema en la pregunta: "SALUDOS" del foro :D
Hasta pronto.
kenshin:
Hola Tenesor :)
...Sólo si podrías pasarme algún programa sobre gráficos, que realmente funcione para echarle un vistazo pq yo no consigo hacer que funcione...
THANKS
tenesor:
Ummm, de verdad no te funciona?
He probado y lo que puede ser (que seguramente será) es por el path del BGI.
Se me olvido decirte una cosita...
El path debe ser con doble barra invertida!!!
por ejemplo, "c:tcbgi"
Pero bueno, por si acaso aqui te adjunto un programa gráfico. Lo unico que hace es inicializar el modo gráfico y si da un error, pulsas una tecla y cierra el modo gráfico y sale del programa:)
Saludos,
Tenesor
---------------------------------------------
// Inicialización y cierre del modo gráfico.
#include <graphics.h>
main()
{
int tarjeta, modo, error;
detectgraph(&tarjeta,&modo);
initgraph(&tarjeta,&modo,"C:TCBGI");
error=graphresult( );
if (error)
{
printf("%s",grapherrormsg(error));
}
else
{
getch( );
closegraph( );
}
}
---------------------------------------------
[Modificado el 2/22/02 por tenesor]
Navegación
[#] Página Siguiente
Ir a la versión completa