Codice




var a=0;
var cicli=5000;
var x0,y0,colorazione;
var controllo=0;


function partenza( ){
          disegnaM( );
          var tasto=$('bottone');
          Event.observe(tasto,'click',sceglic,false);
}


function sceglic( ){
          var contenuto=document.forms.myForm;
          x0=parseFloat(contenuto.txtNome.value);
          y0=parseFloat(contenuto.txtCognome.value);
          colorazione=document.forms.myForm.sceglicolore.value;
         
          if(controllo==0){
                    disegnax( );
                    tantevolte( );
          }else if(controllo==1){
                    tantevolte( )
          }else{
                    var tela=$('julia');
                    var context=tela.getContext('2d');
                    context.fillStyle='white';
                    context.fillRect(0,0,350,350);
                    context.fill();
                    disegnaM( );
                    controllo=0;
                    a=0;
                    disegnax( );
                    tantevolte( );
          }
}


function disegnaM( ){
          var immagine=$('M');
          var ctx=immagine.getContext('2d');
          var img=document.createElement('img');
          img.setAttribute('src','images/mperj.png');
          ctx.drawImage(img,0,0,350,350);
}


function disegnax( ){
          var immagine=$('M');
          var ctx=immagine.getContext('2d');
          ctx.beginPath( );
          ctx.moveTo((82.5*x0)+175-10,175-(82.5*y0)-10);
          ctx.lineTo((82.5*x0)+175+10,175-(82.5*y0)+10);
          ctx.closePath( );
          ctx.lineWidth='2';
          ctx.strokeStyle='#fff';
          ctx.stroke( );
          ctx.beginPath( );
          ctx.moveTo((82.5*x0)+175+10,175-(82.5*y0)-10);
          ctx.lineTo((82.5*x0)+175-10,175-(82.5*y0)+10);
          ctx.closePath( );
          ctx.strokeStyle='#fff';
          ctx.stroke( );
          controllo=1;
}


function tantevolte( ){
          var k=350;
          for(t=0;t < k;t++){
                    passo(a+t);
          }
          if(a < 122500-k){
                    a+=k;
                    setTimeout(tantevolte,0);
          }else{
                    controllo=2;
          }
}


function passo(a){
          var y=a%350;
          var x=Math.floor(a/350);
          disegna(x,y);
}


function disegna(i,j){
          var zoom=1.3;
          var tela=$('julia');
          var context=tela.getContext('2d');
          var xgiusta=(i-175)/(82.5*zoom);
          var ygiusta=(175-j)/(82.5*zoom);
          var ascissa=ciclo(xgiusta,ygiusta);
          var colore;
         
          context.fillRect(i,j,1,1);
          if(Math.abs(ascissa)==cicli-1){
                    context.fillStyle='black';
          }else if(colorazione=='Sfumato'){
                    var rosso=Math.round(ascissa*7);
                    var verde=Math.round(ascissa*4);
                    var blu=Math.round(ascissa*2);
                    colore='rgb('+rosso+','+verde+','+blu+')';
          }else if(colorazione=='2 Colori'){
                    colore='rgb(255,0,0)';
          }
          context.fillStyle=colore;
          context.fill( );
}


function ciclo(x,y){
          var vettore=new Array(2*cicli);
          vettore[0]=x0;
          vettore[1]=y0;
          vettore[2]=xprimo(x,y);
          vettore[3]=yprimo(x,y);
          for(g=4;g < 2*cicli-2;g+=2){
                    vettore[g]=xprimo(vettore[g-2],vettore[g-1]);
                    vettore[g+1]=yprimo(vettore[g-2],vettore[g-1]);
                    if(vettore[g]>2){
                              return(Math.round(g/2));
                              break;
                    }
          }
     return(cicli-1);
}


function xprimo(x,y){
      var nuovax=Math.pow(x,2)-Math.pow(y,2)+x0;
      return(nuovax);
}


function yprimo(x,y){
     var nuovay=2*x*y +y0;
     return(nuovay);
}


Event.observe(window,'load',partenza,false);

Licenza CC