Gráficos INFINITOS con GDI+ sin hundir la CPU

y programas personales para otros como tu, puede que te corrijan ;)
Responder
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Gráficos INFINITOS con GDI+ sin hundir la CPU

Mensaje por Ximorro »

A ver qué os parece este programita que he hecho con mis experimentos con GDI+.
BolasCaptura.png
BolasCaptura.png (192.37 KiB) Visto 3466 veces
Va poniendo cada vez más bolitas en pantalla, pero por muchas que se pongan va siempre igual de bien (o igual de mal si tienes una CPU lentísima, pero al menos no empeora) ;-)

El propio programa muestra el número de bolas en pantalla y los frames por segundo a los que está yendo la animación.
En el tamaño original del script (800x600) me está yendo ahora en un XP a 73fps y lleva ya más de 7000 bolas.

Como indico en la pantalla inicial se puede cambiar algunos de los parámetros del camino que siguen las bolas (forman una especie de gusano). Se puede cambiar la velocidad que usan para recorrer el camino o el tamaño del "tubo" que atraviesan. Eso lo hago para demostrar que no es una animación grabada ni nada parecido, sino que está calculado en tiempo real.
De todas maneras, para empezar mejor no lo toquéis y dejad que se vaya llenando la pantalla, queda algo mejor con los valores iniciales.

Las ecuaciones del harmonógrafo que uso las voy modificando en fase para que llenen la pantalla, pero en realidad si no se tocan forman figuras regulares cíclicas. Podéis quitar el desfase comentando las líneas:
$d += 0.001
If $d > $PI2 Then $d -= $PI2

aunque para ver bien la figura será mejor poner sólo un gusano.

También tengo comentadas las ecuaciones de Lissajous, con las que empecé a trabajar, son más regulares todavía.

Ecuaciones del harmonógrafo: http://local.wasp.uwa.edu.au/~pbourke/g ... monograph/
Curvas de Lissajous: http://es.wikipedia.org/wiki/Curva_de_Lissajous

He aquí el programita, ya me diréis si os va suave.
Adjuntos
BolasInfinitas.rar
(2.61 KiB) Descargado 351 veces
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Gráficos INFINITOS con GDI+ sin hundir la CPU

Mensaje por Chefito »

Jejejeje.....muy muy chulo :smt023 . A mi me va bien en el amd 1300 (35 frames).

Tanto que te quejabas del gdi+ y veo que te estás poniendo las pilas :smt005 .
Le estás sacando partido a las bolitas ehhhh? :smt005 :smt016 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Gráficos INFINITOS con GDI+ sin hundir la CPU

Mensaje por Ximorro »

Gracias se hace lo que se puede :smt002

Jope, el AMD1300 es un buen banco de pruebas, si va ahí es que va bien, ja, ja :smt003

Y del GDI+ me sigo quejando, las cosas deberían ser mucho más fáciles...
Je, podría dibujar las bolitas o cualquier otra cosa, pero ya que están uso eso y me centro en lo demás.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Gráficos INFINITOS con GDI+ sin hundir la CPU

Mensaje por Chefito »

Jejejeje....claro que podrías dibujar bolitas o cualquier cosa. Como tu y yo sabemos manejas refrescos de imágenes. O sea, que en esa imagen puedes meter las bolas o los gráficos que quieras sin que cambia mucho la velocidad (a no ser que cambies el tamaño de la imagen, las características o cosas así :smt002 ). Por eso es conveniente utilizar este método para casi todo :smt001 .

Si fuese refresco de gráficos ya sería otro cantar :smt005 :smt002 .

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Gráficos INFINITOS con GDI+ sin hundir la CPU

Mensaje por Ximorro »

Bueno, bueno, algún truco tiene que haber, ningún ordenador hará nunca INFINITAS cosas a la vez, pero ciertamente este programa puede animar infinitas bolitas... sólo que en cada frame sólo pinta 3 :smt005 :smt005 :smt024 :smt032

Bueno, "refresco de gráficos" hay necesariamente, en cada frame refresco el canvas del formulario. Pero ciertamente uso la técnica del "doble búfer" (en realidad hay más de dos para poder hacer la animación suave). Las bolitas se dibujan en el búfer para evitar parpadeos y que no se vea cómo se van pintando. Pero cuando la "escena" está terminada se refresca el Graphics del GUI, claro.

Y sí, no lo puedo evitar ¡me gustan las bolitas de UEZ! :smt005
Pero ciertamente podía haber puesto por ejemplo un BMP con mi jeta, afortunadamente para vuestra salud mental no soy tan egocéntrico. :smt003 :smt005 :smt044
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder