触手


触手

四角を追いかけるように動く触手アルゴリズム。
改良の余地あり。是非

num=5 

label 0
lock()
clear(0,0,240,240)
for(t=t[0],x[-1]=y[-1]=x=y=108,i=0;i<num;t=t+t[i],x=x[i]=x+cos(t)/6,y=y[i]=y+sin(t)/6,++i){
farc(x,y,16,16)
}
for(i=0;i<num;++i){
if(dx=x[i]-x[i-1],dy=y[i]-y[i-1],dax=ax-x[i-1],day=ay-y[i-1],d=dax*dax+day*day,s=dy*dax-dx*day,c=dx*dax+dy*day,0>s&&(c<0||c*c<=256*d)){++t[i]
}elsif(s>0&&(c<0||c*c<=256*d)){--t[i]}
}
frect(ax-4,ay-4,8,8)
unlock(1)
if(scan&4096){ay=ay-4}
elsif(scan&32768){ay=ay+4}
if(scan&8192){ax=ax-4}
elsif(scan&16384){ax=ax+4}
if(input(0)==2){end}
goto 0