function square(m,a)
{var b=Rotation(a,m,Math.PI/2,'hidden')
var c=Rotation(b,m,Math.PI/2,'hidden')
var d=Rotation(c,m,Math.PI/2,'hidden')
Segment(a,b,'')
Segment(b,c,'')
Segment(c,d,'')
Segment(d,a,'')
return [a,b] 
}
function spiral(m,z,f,n)
{if (n>0){
var aux=DilationMarkedRatio(z[0],z[1],f,'hidden')
var z=square(m,aux)
spiral(m,z,f,n-1)}
}

M=Point(200,200,'hidden')
A=Point(360,360,'hidden')
z=square(M,A)
seg=Segment(z[0],z[1],'hidden')
p=Point_on_object(seg,0.05,'label(Move)')
f=RatioPoints(z[1],z[0],p,100,100,'f=','hidden')
spiral(M,z,f,50)
AnimateButton(10,10,'Animate',[p,seg],[0.5],[0],[0],'')


