viernes, 13 de julio de 2012

Fractal de Koch

Ing. Ecler  En este link se encuentra el trabajo.
 El trabajo lo realizamos en Flash Professional  CS5

http://www.mediafire.com/?1luvhin8k0ao5an


ALGORITMO

Código para el botón
on (press) {
            iteraciones = Number(txtNro.text);
            if (iteraciones > 0 && iteraciones < 10)
            {
                        Ciniciarkoch(iteraciones,400); 
            }
}

Código para el fotograma
function Ciniciarkoch(nivel,distancia){
// definiendo el valor de x1,y1 y el angulo
x1 = 400-distancia/2;
y1 = distancia/3+20;
angulo = 360 * Math.PI / 180;
// punto inicial (pix1,piy1)
pix1 = x1;
piy1 = y1;
band = 0;//contador
//llamando a la funcion curvakoch
curvakoch(nivel,distancia);
}

function curvakoch(nivel,distancia)
{
            //llamando a la funcion graficakoch
            graficakoch(nivel,distancia);
            angulo += -120 * Math.PI / 180;
           
            graficakoch(nivel, distancia);
            angulo += -120 * Math.PI / 180;
           
            graficakoch(nivel, distancia);
}

function graficakoch(nivel, distancia)
{
            if (nivel <= 0)
            {
                        lineStyle(0.5,0xFFCC66,100);//estilo de la linea
                        if (band == 0)
                        {
                                   moveTo(pix1,piy1);
                                   band = 1 + band;
                        }
                        xx = x1 + distancia * Math.cos(angulo);
                        yy = y1 - distancia * Math.sin(angulo);

                        lineTo(xx,yy);
                        x1 = xx;
                        y1 = yy;                     
            }
            else
            {
                        //llama asi misma
                        graficakoch(nivel - 1,distancia / 3);
                        angulo += 60 * Math.PI / 180;
                       
                        graficakoch(nivel - 1,distancia / 3);
                        angulo += -120 * Math.PI / 180;
                       
                        graficakoch(nivel - 1,distancia / 3);
                        angulo += 60 * Math.PI / 180;
                        graficakoch(nivel - 1,distancia / 3);
            }
}




1 comentario: