Bueno, vengo arrastrando este proyecto hace años...Poco a poco lo voy haciendo, pero no le estoy dedicando mucho tiempo por ahora. Esperemos que pronto vea la luz. Publico un videito para que al menos se sepa su existencia...
martes, 14 de julio de 2009
domingo, 17 de mayo de 2009
Telarañas...Reloaded
Tenía que suceder. El cambio era inminente!
Ahora vengo con una versión mejorada del generador de telarañas anterior. Como había pensado, ahora hice que las lineas principales también se curven.
Además, traigo ahora el programa hecho en C++(DEV-C++ específicamente). Pueden descargarlo desde acá.
Y la nueva versión para VB6 acá.
Agradecimientos especiales a Eloy(EAC) por la ayuda otorgada.
Imágen de ejemplo de la versión de Visual Basic 6(VB6):

Imágen de ejemplo de la versión de DEV-C++:

Hasta pronto.
Ahora vengo con una versión mejorada del generador de telarañas anterior. Como había pensado, ahora hice que las lineas principales también se curven.
Además, traigo ahora el programa hecho en C++(DEV-C++ específicamente). Pueden descargarlo desde acá.
Y la nueva versión para VB6 acá.
Agradecimientos especiales a Eloy(EAC) por la ayuda otorgada.
Imágen de ejemplo de la versión de Visual Basic 6(VB6):
Imágen de ejemplo de la versión de DEV-C++:
Hasta pronto.
sábado, 11 de abril de 2009
Telarañas..
Primer entrada del blog. Generador de telarañas(porque no encontré ninguno en la web...) Pensé que puede que esto no serviría a nadie, luego pensé que el mundo es grande y que siempre hay alguien que está buscando justo eso. Eso que no te enteraste nunca que iban a necesitarlo porque sencillamente no lo hiciste público. Así que hago público lo mío. Programando para un proyecto mayor, se me ocurrió hacer un efecto de letras sobre una telaraña. El problema es que quería dinamismo y necesitaba poder variar la telaraña para que no terminara aburriendo. Mucho dinamismo. La clave del éxito de la mayoría de las cosas. Bueno, basta de rollos. Vamos a lo que nos compete:
A primera vista parecería que hacer una telaraña no es gran desafío. Ah! seguro que no! ahora, hacer una telaraña que se asemeje a las reales es un poco más complejo. Paso a explicar aquí mi algoritmo que he usado para generar telarañas al azar(bueno, no taaan al azar).
Bueno, básicamente una telaraña está compuesta de dos partes diferenciadas: las líneas principales(de dirección radial) que son las primeras que la araña "teje" para luego poder "tejer" el resto de las lineas secundarias(de dirección tangencial generalmente). Entonces, lo primero que debía hacer el programa era generar estas líneas principales para poder luego ubicar el resto de las secundarias. Las líneas principales están confinadas a un espacio rectangular, esto permite poder jugar un poco con la proporción ancho/alto de la telaraña.
Bueno, vayamos a los bifes:
Imágen de una telaraña en donde muestro con color blanco las líneas principales, con amarillo las secundarias y el rectángulo contenedor en rojo:
Bueno, esto fue lo que salió, después lograr generar todas las líneas correctamente. Fue bastante frustrante ver que se bien el programa hacía lo que yo anhelaba, el resultado fue demasiado preciso. Una telaraña real no tan simétrica. Carece de onda. E iba en serio; carecía totalmente de onda alguna. Son telarañas ideales, oníricas para muchas arañas. Había googleado y todas las imágenes de telarañas reales tenían curvas, probablemente generadas por la gravedad, el sistema de fuerzas sumamente complejo del que está compuesto una telaraña, el viento y otras yerbas...En fin: un garrón..
Pero luego dije: generemos algunas curvitas! Esto va a ser re-interesante! Matemática a mi! Wiiiii!!
Entonces, ahora venía la duda de qué fenómeno simularía, y resultó que me decidí por considerar a las líneas de la telaraña como si fuesen cuerdas con cierta elasticidad, y someterlas a una ecuación que simularía la gravedad actuando sobre ellas.
Entonces, la idea era sencilla. cada línea puede considerarse como un segmento de recta. Tomaría cada segmento de recta de la telaraña, lo trasladaría al centro de coordenadas, lo rotaría para que el segmento quedase paralelo al eje X y ahora basandome en el ángulo que tenía el segmento,su longitud y una fuerza elegida por mí, calcularía la posición donde se encontraría el punto de inflexión de la curva a generar. Luego, usando un par de funciones trigonométricas, generaría la curva en sí. Finalmente, volvería a rotarla a su ángulo original y la trasladaría a su posición origen. ¿Se perdieron? Hmm..bueno, es que eso es sólo una simplificación de lo que realmente es. Espero que ahora estén más tranquilos.
En fin, luego de mucha matemática y algebra por medio, los resultados fueron bastante satisfactorios.
Algunas capturas:
Ahora la idea era aplicar curvas a las líneas principales. Veremos si se justifica. Les dejo el ejecutable, luego postearé uno en el cual puedan elegir los valores. Están en VB6, así que si no pueden ejecutarlo puede que sea porque necesiten instalar los VB6 runtime files o bien, que necesiten instalar Windows(ja!).
Hasta pronto.
Suscribirse a:
Entradas (Atom)