Comunidad de diseño web y desarrollo en internet online

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

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.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate