• Domingo 22 de Diciembre de 2024, 07:36

Autor Tema:  Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?  (Leído 5251 veces)

kenshin

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« en: Miércoles 20 de Febrero de 2002, 23:31 »
0
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

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« Respuesta #1 en: Jueves 21 de Febrero de 2002, 04:18 »
0
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]
Que el toro estoque al matador, que el preso enciere al guardián, que solo sean de cerveza los tanques, que el pez pesque al pescador y que el tigre dome al domador, que la television se prohiba y el hachis se legalice, que africa sea tierra mágica y no trágica... cambiando el mundo [NS]

kenshin

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« Respuesta #2 en: Jueves 21 de Febrero de 2002, 13:13 »
0
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

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« Respuesta #3 en: Sábado 23 de Febrero de 2002, 00:43 »
0
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

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« Respuesta #4 en: Sábado 23 de Febrero de 2002, 03:07 »
0
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]
Que el toro estoque al matador, que el preso enciere al guardián, que solo sean de cerveza los tanques, que el pez pesque al pescador y que el tigre dome al domador, que la television se prohiba y el hachis se legalice, que africa sea tierra mágica y no trágica... cambiando el mundo [NS]

kenshin

  • Miembro activo
  • **
  • Mensajes: 29
    • Ver Perfil
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« Respuesta #5 en: Domingo 24 de Febrero de 2002, 09:03 »
0
:D ...Vale, aquí mi nueva duda...

...¿Alguien podría darme una orientación sobre cómo podría de finir por ejemplo las paredes de un laberinto o algo así? (Quiero decir, ¿se guardan los datos de las paredes en un archivo de texto o algo así...?

gracias

tenesor

  • Miembro activo
  • **
  • Mensajes: 90
    • Ver Perfil
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« Respuesta #6 en: Domingo 24 de Febrero de 2002, 19:24 »
0
ummm, echale un ojo a http://www.mundovb.net/mundoc/laberinto.htm

Es el codigo fuente de un juego de laberintos en C++. Dice que para las paredes tienes que guardarlo en un archivo de texto (vamos, dibujar el laberinto en un archivo de texto)

Espero que te sirva, pues yo no sabría decirte como hacerlo.

Saludos,
  Tenesor
Que el toro estoque al matador, que el preso enciere al guardián, que solo sean de cerveza los tanques, que el pez pesque al pescador y que el tigre dome al domador, que la television se prohiba y el hachis se legalice, que africa sea tierra mágica y no trágica... cambiando el mundo [NS]

Gero

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« Respuesta #7 en: Viernes 10 de Mayo de 2002, 02:51 »
0
Yo tengo un programa (lástimosamente en Pascal) que crea laberintos aleatorios de tamaño deseado en dos dimensiones menores que la pantalla. Es decir que todos los laberintos tienen diferente solución.
Además el mismo hace la solución buscando la ruta en otro procedimiento.

Primero, para crear el laberinto, se hace aleatoriamente un camino desde arriba hacia abajo de la pantalla. Después se llenan los espacios de la izquierda y la derecha en forma también aleatoria. Se hace con procedimientos recursivos.
Después que está lleno el laberinto, hay una función para descubrir el camino de salida. Esta busqueda es por prueba y error en cada una de las direcciones.
Voy a hacer el ejercicio de pasarlo a C a ver si me funciona.
Maneja el CRT en forma divertida y sencilla, además tiene la animación para resolución del laberinto.
Cualquier consulta por favor escribanme

Saludos
Gero  :)

dheak

  • Miembro activo
  • **
  • Mensajes: 62
    • Ver Perfil
Poner pixel en pantalla...¿?¿?¿?¿?¿?¿?¿?¿?
« Respuesta #8 en: Viernes 10 de Mayo de 2002, 20:11 »
0
Hola gero! eh, con respecto al programilla ese que hiciste del laberinto, me gustaria que me lo pasases (si no te importa, vamos) para poder ver un poco el codigo y como esta programado (siempre se puede aprender algo). Me es indiferente la version Pascal o C.

Gracias de antemano. Saludos