SPALM moreでsqrtとか小数が使えるということで、白と黒の捻ったような円を描画する関数を作ってみた。
使い方は下に示されている通りである。処理は激重。
フレーザー錯視の作画なんかに使えるかも・・・?
t=tick mc(120,120,70,6,0,32) mc(120,120,50,4,0,32) mc(120,120,35,3,0,32) mc(120,120,25,2,0,32) mc(120,120,100,8,0,32) soft1(tick-t) input() '中心,半径,太さ,位相,捻り数' func mc(x,y,r,w,t,n){ n=360/n l=r-w/2.0 h=r+w/2.0 l2=l*l h2=h*h origin(x,y) for(i=int(h);i>=0;--i){ for(f=0,i2=i*i,j=int(sqrt(h2-i2))+1;j>=0;--j){ if(d=i2+j*j,d>=l2&&d<=h2){ d2=sqrt(d) t2=int(d2*1.8+t) c=0 pco=cos(t2) psi=sin(t2) do{ co=cos(t2=t2+n) si=sin(t2) }while((i*si+j*co^i*psi+j*pco)>=0&&(pco=co,psi=si,++c)) setpixel(i,j,c=-(c&1)) setpixel(-j,i,c) setpixel(j,-i,c) setpixel(-i,-j,c) f=1 }elsif(f){ break } } } }
FrontPage
関数一覧
記号一覧
SPALM入門
作品集
自作関数活用術
ダウンロード先
うpロダ
wikiの使い方
SPALMまでの歴史
現行スレ