¿Quieres registrarte?

El algoritmo tras la hierba, su raiz mátematica y código

Por: M@U + 21 de Junio del 2009

Después de muchos días de trabajo sin descanso, el equipo de Cristalab logro mejorar notablemente sus algoritmos de seguridad y rendimiento en general, haciendo del mundo un lugar mejor.

Este éxito se concluyo gracias al descubrimiento de una ecuación matemática extraída directamente de la planta «Cannabis sativa», por lo que no es necesario señalar sus singulares efectos.

Para deleite de los visitantes, hemos encapsulado un poco de su esencia en Actionscript 3, para que solo así puedan ser testigos de su misterioso poder. Solamente tienes que dar click en el recuadro para verla en acción:


Si ves esto desde un lector de feeds, puede que no veas lo de arriba. Da click aquí para verlo. Todo a través de una aparentemente sencilla ecuación

La mencionada ecuación, cabe destacar, está graficada en un plano de coordenadas polares, por lo que no esperes sea igual a las que respondías en el colegio:

Código :

Polar:
[
   (1 + 0.9 * cos(8 * i)) * (1 + 0.1 * cos(24 * i)) * (0.9 + 0.05 * cos(200 * i)) * (1+sin(i)),
   {-π → π}
];
Esto, traducido a glorioso ActionScript 3 seria similar a lo siguiente:

Código :

// Primero declaramos el Sprite donde dibujar
var graph:Sprite = new Sprite();
graph.graphics.beginFill(0xC0C0B4);
graph.graphics.drawCircle(0, 0, 5);
graphics.lineStyle(1, 0xC0C0B4, 1);
graph.visible = false;
addChild(graph);
// Estas variables las necesitaremos para trazar coordenadas en 
// el plano polar, y deshacernos del convencional plano cartesiano
// que esta por defecto en Flash 
var a:Number = -10*Math.PI;
var theta:Number = -Math.PI;
var r:Number = 0;
// Función encargada que colocar el punto en el sitio indicado
function polar(sprite:Sprite):void
{
   sprite.x = 10 * r * Math.cos(theta) + r;
   sprite.y = 10 * r * Math.sin(theta) + r;
}
// Una vez que tenemos todo listo, comenzamos a dibujar
addEventListener(Event.ENTER_FRAME, listener);
function listener(event:Event):void
{
   switch(event.type)
   {
      // Recuperamos el evento ENTER_FRAME para comenzar a trabajar
      case Event.ENTER_FRAME:
         if(a < 0)
         {
            a += 0.01;
            r = 10*(1+.9*Math.cos(8*a))*(1+.1*Math.cos(24*a))*(.9+.05*Math.cos(200*a))*(1+Math.sin(a));
            graphics.lineTo(graph.x , graph.y);
         } else {
            // Removemos el evento ENTER_FRAME una vez que hemos terminado
            removeEventListener(Event.ENTER_FRAME, listener);
            graph.visible = false;
            return;
         }
         // Mientras la ecuación anterior trabaja, debemos desplazar poco a poco el angulo
         polar(graph);
         theta += 0.01;
      break;
   }
}
Voilà..! Esto fue una probadita de la ingeniera detrás del funcionamiento de Cristalab, si no eres muy habilidoso aun con actionscript, puedes descargar el archivo fuente directo aquí.

La ecuación, por cierto, nació en Twitter y fue primero rendereada por el poder de Skynet Wolfram Alpha.

Enviar a twitter Enviar a facebook

También te interesa


Etiquetas actionscript actionscript_3 wtf ciencia programacion

Comentarios | Enviar un comentario
wowwwwwwww realmente impresionante!!!!!!!!!!!!!

^^ esto de seguro traerá nuevos seguidores de {AS} U_U

Felicitaciones ^^
Por: eldervaz
excelente, muy divertido y muy instructivo.
Por: bubudrc
No lei tu post, simplemente me fui directo a la animaciòn y desde la primera hoja, supe que estaba hecha por la gracia del C_c
Por: Victor-Nael
Muy bueno M@U, por aqui hace años subí ejemplos similares creo, donde se dibujaba un corazón y cosas así.

saludos
Por: Dano
Wow.. no podria faltar el Cc
Por: Mago.ozkuro
Wow Genial M@U (y)
Por: fredybg
Estoy seguro que es una ecuación de El Libro.


Ahora ya saben ustedes por qué estudio matemáticas ^^
Por: _CONEJO

_CONEJO :

Estoy seguro que es una ecuación de El Libro. Ahora ya saben ustedes por qué estudio matemáticas
HaHaHa...! Ahora estoy trabajando en que sea dibujada en 3D a través de drawTriangles,
:sueno: :lol:
Por: M@U
1 :shock:

2 :o

3 :cc:

4 :lol:

5 :ownz:

6 :alabado:
Por: Sisco
jajajaja
Genial!!!!
M@U eres un genio por pasarlo a AS3 :P

*Recuerda sus clases de matemáticas y las gráficas polares...
Por: daz_angie
Eso explica el por que las largas noches conectado al talk. Investigación es investigación, nada de prilouders o satélites termonucleares. Muy bien M@U ^^
Por: bryanisimo
Jeje, curiosa utilización de la gràficas en polares.

Por cierto, ¿te salió algo desfasada que la hoja se ve inclinada? :?
Por: Bleend-blog
Excelente ejemplo M@U, felicidades ^^
Por: flashreloco
Muy bueno XD
Por: elchininet
Está genial M@U!!!

XD
Por: glsmaster-blog
0: q bonito q bonito xD
Por: eveevans
Si los límites son de -PI a PI, no entiendo que empieces por algo como -10*PI. Además, estamos usando dos variables (a y theta) cuando sólo nos haría falta una sola.
Por cierto, debemos, antes de empezar el onEnter hacer un Move al primer punto calculado para que no nos quede esa línea recta :)
Por: Eliseo-blog

Eliseo-blog :

Si los límites son de -PI a PI, no entiendo que empieces por algo como -10*PI. Además, estamos usando dos variables (a y theta) cuando sólo nos haría falta una sola.
Por cierto, debemos, antes de empezar el onEnter hacer un Move al primer punto calculado para que no nos quede esa línea recta :)


En realidad la función está definida en todo R El hecho de empezar con -10*PI simplemente hace que de 10 "vueltas" o se dibuje 10 veces (que no es para otra cosa que para entretener)

Con a y theta tienes razón, solo una es necesaria
Por: _CONEJO
Wow, siempre lo he dicho, la naturaleza diseña matemáticamente, nuestro mundo esta lleno de patrones y fractales, y aquí tenemos un vivo ejemplo U_U
Por: EmiR

EmiR-blog :

Wow, siempre lo he dicho, la naturaleza diseña matemáticamente, nuestro mundo esta lleno de patrones y fractales, y aquí tenemos un vivo ejemplo U_U


Revisa tu definición de fractal.
Por: _CONEJO
Emmm, si ¿por que no?. Todo eso que dijo el Lepórido es lo mismo que yo habría dicho, y lo del uso de theta/a ya lo había deducido pero olvide actualizar el código. Sorry,
Por: M@U
jajajaj esta de lujo
Por: oscartitan
Wow! Es lo mas cool que he visto en toda la semana xD
Por: MmO12
NO se puede creer!!!
Esto es estupendo.
Por: Mastrufedo
_CONEJO sabiondo ¬¬
Por: _burtoboy-blog
Yo, cada vez me sorprendo mas. Es increible como con AS se pueden hacer tantas cosas infinitas.
Por: Andromeda_Erick-blog
la teta de quien? .... jejejeje ya fumaron esa porqueria de nuevo :lol: :lol: :lol: :lol: :lol:

Ya en serio, muy buena demostracion
Por: sergestux
Muy Bueno. me dio ganas de encender mi pipa
Por: cuff-blog
oal la vedad estudio informatica y no entiendo nada de algoritmico sus problemas
java=visual basic
nada d eso
Por: ola-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.