var a=0;
var lato=350;
function init( ){
var tasto=$('M');
Event.observe(tasto,'click',tantevolte,false);
}
function tantevolte( ){
var k=30;
for(t=0;t<k;t++){
passo(a+t);
}
if(a<lato*lato-k){
a+=k;
}
setTimeout(tantevolte,0);
}
function passo(a){
var f=(327*a)%122500;
var y=f%lato;
var x=Math.floor(f/lato);
disegna(x,y);
}
function disegna(i,j){
var punto=creaVettore((i-174)/82.5,(198-j)/82.5);
puntino(i,j,punto);
}
function puntino(x,y,punto){
var coso=1;
var tela=$('M');
var context=tela.getContext('2d');
var colore;
var rosso=Math.round(punto*3);
var verde=Math.round(punto*10);
var blu=Math.round(punto*12);
if(punto==-1){
colore='#000';
}else{
colore='rgb('+rosso+','+verde+','+blu+')';
}
context.fillRect(x,y,1,1);
context.fillStyle=colore;
context.fill();
}
function creaVettore(x,y){
var cicli=100000;
var vettore=new Array(cicli);
vettore[0]=[x,y];
for(m=0;m<cicli-1;m++){
var nuovax=xprimo(vettore[m][0],vettore[m][1],x);
var nuovay=yprimo(vettore[m][0],vettore[m][1],y);
vettore[m+1]=[nuovax,nuovay];
if(Math.abs(nuovax)>100){
return(m);
break;
}else if(m<30){
for(n=0;n<m;n++){
if(nuovax==vettore[n][0]&&nuovay==vettore[n][1]){
return(-1);
break;
}
}
}else{
for(n=m-30;n<m;n++){
if(nuovax==vettore[n][0]){
return(-1);
break;
}
}
}
}
}
function xprimo(x,y,x0){
var nuovax=Math.pow(x,2)-Math.pow(y,2)+x0;
return(nuovax);
}
function yprimo(x,y,y0){
var nuovay=2*x*y +y0;
return(nuovay);
}
Event.observe(window,'load',init,false);