POVRAY en Castellano

Un sitio de intercambio sobre POVRAY

Los fractales son fascinantes y POVRay se presta mucho en este campo. En estos días estoy dedicando un rato a crear una animación sobre crecimiento fractal en un proceso de agregación por difusión limitada (DLA). Ya casi tengo terminado el código de la animación y espero mostrar pronto el resultado. En la animación se verá una particula cayendo aleatoriamente sobre un plano al que se quedará fijada, luego iran cayendo más partículas que se fijarán, al suelo o a otras particulas con las que colisione, formando estructuras similares a algas.

Bueno, esto es la teoría, de momento falta dar unos retoques, renderizar y ver que pasa.

Compartir

Responde a esto

Respuestas a esta discusión

Ya tengo una primera prueba y parece que funciona. De todas formas voy a refinar un poco la forma para detectar las colisiones de las particulas para acelerar un poco el cálculo y para que sea más exacto. Otro cambio a realizar es eliminar un frame vacio que intercala cada vez que se produce una colisión.

Las colisiones las calculo con la función trace. Un bucle que se repite tantas veces como se defina, lanza un rayo en direcciones aleatorias. Si intercepta una superficie, se calcula la distancia desde la particula hasta el punto de intersección. Si esta es menor que el radio de la particula, se produce una colisión y el bucle se detiene. Sin embargo, voy a limitar las direcciones en que se lanzan los rayos a un cono con un ángulo variable (máximo 180º, lo que equivale a una semiesfera) proyectado en la dirección de caida de la particula, pues ningún rayo lanzado en dirección contraria detectará una colisión.

También cabe la posibilidad de detectar las colisiones con la función inside, pero no sé cual será más rápida ni eficiente. La idea sería, distribuir puntos homogeneamente sobre la superficie de la particula y comprobar si alguno está dentro de los objetos sobre los que se calculan las colisiones. Pero realmente no lo he probado.

Si tengo tiempo cambiaré el movimiento de la particula, que actualmente es púramente aleatorio, por un movimiento browniano.

Si alguien tiene otra sugerencia o idea hacedmela saber.

Saludos
Archivos adjuntos:

Responde a esto

Hola Francisco,
Interesante tema, espero ver los resultados definitivos, la prueba es prometedora. No tengo conocimiento del tema (DLA), podrías agregar algo de bibliografía y enlaces de referencia. Gracias por compartir tus trabajos.

Saludos desde Córdoba, Argentina

Responde a esto

Pronto tendré una animación terminada. A medida que he ido avanzando, he anotado nuevas ideas para próximos trabajos. En cuanto a enlaces o bibliografía, yo tengo algunos libros sobre fractales; pero entre otros el más útil en este caso ha sido "Geometría Fractal: Algorítmica y representación" de Javier Barallo Calonge. Es un libro breve, pero trata muy bien los algoritmos para representar los fractales e incluye el código en c para implementarlos.

Por otra parte, enlaces en internet hay multitud. Aquí te dejo algunos:
http://www.dmae.upm.es/cursofractales/capitulo8/4.html
http://local.wasp.uwa.edu.au/~pbourke/fractals/dla/
http://classes.yale.edu/fractals/Panorama/Physics/DLA/DLA.html
http://local.wasp.uwa.edu.au/~pbourke/fractals/dla3d/

Como podrás comprobar mis resultados no son aún muy buenos, pero ese es un buen aliciente para seguir probando.

Responde a esto

En la siguiente dirección de youtube dejo un video con el resultado
http://www.youtube.com/watch?v=hDwrLiPU2OE

Espero que os guste.

Tiene algunos errores, entre ellos que en ocasiones cuando la particula colisiona ya está solapada con otras partículas, es más a veces la partícula se introduce dentro del resto dando la sensación de que realmente no se ha detectado la colisión. Eso es consecuencia del movimiento aleatorio de la partícula. Para evitarlo el movimiento de la partícula debería ser más lento, pero eso haría un animación interminable para ver algunas sólo unas pocas partículas adherirse. Otra opción es discretizar los movimientos de las partículas, pero daría un resultado menos vistoso con esferas.

El próximo trabajo será mejorarlo un poco y hacer la animación pero sólo en el momento en que una partícula se adhiere al conjunto obviando los frames en los que la particula flota libremente.

Responde a esto

Muy interesante Javier, una pregunta solamente, sería posible que cayeran más de una esfera por vez?. Eso le daría más ritmo a la animación. Felicitaciones.

Responde a esto

Gracias por tus comentarios, tanto aqui como en youtube. No hay ningún problema en que caigan más de una esfera. Es algo que me había estado planteando. Bueno... si que hay un problema, pero eso es lo bueno, tengo que estudiar cómo hacerlo. Ja ja. Lo intentaré.

Responde a esto

Es cierto Javier los desafíos son los que nos mantienen atentos y dispuestos. Espero esa solución que seguramente encontraras. Saludos desde Córdoba, Argentina.

Responde a esto

RSS

Insignia

Cargando…

Tu caja de dialogo en POVRAY en Castellano

© 2009   creado por Mario Antonio Herrero Machado en Ning.   Crear tu propia red social

Insignias  |  Informar un problema  |  Privacidad  |  Términos de servicio

Iniciar sesión para hablar