Comunidad de diseño web y desarrollo en internet

Crear fractales usando la Clase Point de Flash 8

Con el uso de la Clase Point se pueden simplificar muchos códigos y, además de tener que usar poca o nula trigonométrica, conseguir un aumento significativo de la velocidad de proceso.
Este código simplemente genera rayos. No se necesita nada más que poner dicho código en las acciones de primer frame.

Crea un MC rayo donde "dibujamos" un fractal creado con recursividad de la misma función arco().

Dicha función necesita 4 parámetros para llamarla: 2 puntos A y B entre los que saldrá el rayo ( en el ejemplo usamos uno fijo y otro tomando la posición del mouse), el ancho del trazo del rayo y su linealidad ( cuanto menor es ese valor, más recto y cuanto mayor, mas quebrado.

Tiene añadido un filtro de iluminación para ampliar el efecto, se pueden variar los parámetros del mismo para obtener otros resultados.



Código :

import flash.geom.*;
import flash.filters.*;
rayo = this.createEmptyMovieClip("e",100);
BF = new GlowFilter(0xaaaaff,.5,16,16,2,1);

arco = function (A,B,anc,tz){ 
   var d1 = Point.distance(A,B)/2;
   var ang = Math.atan2(B.y-A.y, B.x-A.x)-.78;
   var C = Point.interpolate(A,B,.5).add(Point.polar(d1*tz*(2*Math.random()-1),ang));
   rayo.lineStyle(anc,0xc2c7fd,anc*50);
   if (d1>15)arco(C,C.add(Point.polar(d1,ang+1.5*Math.random())),anc/1.9,tz);
   if (d1>10){arco(A,C,anc,tz); arco(C,B,anc,tz);}
   else{rayo.moveTo(A.x,A.y); rayo.lineTo(C.x,C.y); rayo.lineTo(B.x,B.y); rayo.filters=[BF]}
}

nrayo = onMouseMove = function(){
   A = new Point(200,0); B = new Point(_xmouse,_ymouse);
   rayo.clear(); arco(A,B,2,.5);
}
IT = setInterval(nrayo,30);//opcional 


Pequeñas variaciones y ampliaciones sobre este tipo de códigos permiten la generación de múltiples texturas (mármoles, maderas, vegetales, etc..) y que podremos generar sin tener que importarlas. Pero eso será el motivo de un trabajo mucho más extenso y específico.

¿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

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