El atractor de Lorenz, concepto introducido por Edward Lorenz en 1963, es un sistema dinámico determinístico tridimensional no lineal derivado de las ecuaciones simplificadas de rollos de convección que se producen en las ecuaciones dinámicas de la atmósfera terrestre.
Para ciertos valores de los parámetros a, b, c el sistema exhibe un comportamiento caótico y muestra lo que actualmente se llama un atractor extraño; esto fue probado por W. Tucker en 2001. El atractor extraño en este caso es un fractal de dimensión de Hausdorff entre 2 y 3. Grassberger (1983) ha estimado la dimensión de Hausdorff en 2.06 ± 0.01 y la dimensión de correlación en 2.05 ± 0.01.
El sistema aparece en láseres, en generadores eléctricos y en determinadas ruedas de agua.1
Para ciertos valores de los parámetros a, b, c el sistema exhibe un comportamiento caótico y muestra lo que actualmente se llama un atractor extraño; esto fue probado por W. Tucker en 2001. El atractor extraño en este caso es un fractal de dimensión de Hausdorff entre 2 y 3. Grassberger (1983) ha estimado la dimensión de Hausdorff en 2.06 ± 0.01 y la dimensión de correlación en 2.05 ± 0.01.
El sistema aparece en láseres, en generadores eléctricos y en determinadas ruedas de agua.1
Comenzarenos Programando
// Esta parte del código dibuja el fondo de para dibujar
var
base:MovieClip =
this.createEmptyMovieClip("base",this.getNextHighestDepth());
// crea un clip de película vacío
with(base){
_x=10;
_y=10;
beginFill(0x99CC00,20);
//pinta el fondo
lineStyle(5,0xFF0000,50);
//pinta el borde con
dimensiones de 748*800
lineTo(0,748);
lineTo(800,748);
lineTo(800 ,0);
endFill();
}
function
dibujar (x:Number, y:Number, ancho:Number, alto:Number, quien:MovieClip,
color){
var prof:Number=
quien.getNextHighestDepth();
var
circulo:MovieClip = quien.createEmptyMovieClip("circulo"+prof,prof);
// Sobre la base
crea un circulo o para este caso un punto
with (circulo){
dx = (p * (ny - nx));
dy = ((r * nx) - ny - (nx * nz));
dz = ((nx * ny) - (b * nz));
nx = nx + dx * dt;
ny = ny + dy * dt;
nz = nz + dz * dt;
// calcula los puntos para comenzar a dibujar nx, ny y nz
beginFill(color,100);
lineStyle(1,color,100);
moveTo(0,alto);
curveTo(0,0,alto,0);
curveTo(1, 0,
1, alto);
curveTo(ancho, alto, ancho, alto);
curveTo(0,
alto, 0, alto);
endFill();
// Dibuja los
puntos en las coordenadas establecidad
_x=ny* 11+400;
_y=nz* 11;
}
}
// limites para dibujar los puntos
var x:Number=800;
var y:Number=748;
// ancho y alto de los puntos
var ancho:Number= 1;
var alto:Number= 1;
// limite de los punto como la atracción de lorenz es una
ecuación y es hsata el infinito le damos un limite hasta 500k
var cuantos:Number= 500000;
// espacio entre un punto y el otro
var espacioX:Number=1;
var espacioY:Number=1;
//numero de interacciones
var i=0;
function cambiarValores(){
//
obtener los punto desde el formulario
nx =
parseFloat(ntx);
ny =
parseFloat(nty);
nz =
parseFloat(ntz);
dt =
nt;
}
// Declarando las variables para obtener la atracción de
lorenz
var nx;
var dx;
var p = 10;
var ny = 3;
var dy;
var r = 28;
var nz= 3;
var dz;
var b = 8 / 3;
var dt;
var color;
function unCirculo (){
/* Dibujar recursivamente los puntos en este caso se obtiene las coordenadas x e
y, el ancho y alto del punto y también sobre el lienzo en el que será dibujado
y por ultimo el color */
if(i<3000){
color=0x000000;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<6000){
color=0x003300;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<9000){
color=0x006600;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<12000){
color=0x006600;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<15000){
color=0x009900;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<18000){
color=0x00CC00;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<21000){
color=0x00FF00;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<24000){
color=0xFFFFFF;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<27000){
color=0xFFFF00;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<30000){
color=0xFFCC00;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<33000){
color=0xFF9900;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<36000){
color=0xFF6600;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<40000){
color=0xFF3300;
dibujar(x,y,ancho,alto,base,color);
}
else {
color=0xFF0000;
dibujar(x,y,ancho,alto,base,color);
}
color=0x000000;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<6000){
color=0x003300;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<9000){
color=0x006600;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<12000){
color=0x006600;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<15000){
color=0x009900;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<18000){
color=0x00CC00;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<21000){
color=0x00FF00;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<24000){
color=0xFFFFFF;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<27000){
color=0xFFFF00;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<30000){
color=0xFFCC00;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<33000){
color=0xFF9900;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<36000){
color=0xFF6600;
dibujar(x,y,ancho,alto,base,color);
}
else if(i<40000){
color=0xFF3300;
dibujar(x,y,ancho,alto,base,color);
}
else {
color=0xFF0000;
dibujar(x,y,ancho,alto,base,color);
}
// Detiene la creación de los puntos si
estos sobrepasan los límites.
x+=ancho+espacioX;
if (x+ancho+espacioX>=base._width){
y+=ancho+espacioY;
x=1;
}
val=i;
i++;
if ((i==cuantos) || (y+alto+espacioY>=base._height)){
clearInterval(intervalo);
}
}
if (x+ancho+espacioX>=base._width){
y+=ancho+espacioY;
x=1;
}
val=i;
i++;
if ((i==cuantos) || (y+alto+espacioY>=base._height)){
clearInterval(intervalo);
}
}
No hay comentarios:
Publicar un comentario