中点変位アルゴリズムを再帰で実装して、雷のような画像を生成するアルゴリズム。
DIVは分割数。frameは描画コマ数。メモリ不足になるようなら、この数を減らしてみて下さい。
frameコマ描画しきったらそれらを高速に表示する。
DIV=60 frame=50 func r(l[a],h[a]){ if(l=l[a],h=h[a],abs(l-h)>1){ c[a]=c=(l+h)/2 x[c]=(x[l]+x[h])/2+(y[l]-y[h])*(rand%10)/40 y[c]=(y[l]+y[h])/2+(x[l]-x[h])*(rand%10)/40 r(l,c[a++]) r(c[a],h[a++]) } --a } weight=5 y[0]=0 y[DIV]=240 x[0]=120 label 0 if(t==frame){ drawimg(g[i++%t],0,0,0) sleep(50) }else{ gc() makeimg(g[t],240,240) trgt(g[t]) lock() col(0) frect(0,0,240,240) for(a=0;a<DIV*3/4;a=a+abs(rand)%((DIV-a)/2)+(DIV-a)/4){ x[DIV]=abs(rand)%240 r(a,DIV) for(i=a;i<DIV;++i){ color(96+32*(DIV-i)/DIV,0,120+40*(DIV-i)/DIV) line(x[i],y[i],x[i+1],y[i+1]) } } unlock(1) trgt(off) drawimg(g[t++],0,0,0) } if(input(0)){end} goto 0
FrontPage
関数一覧
記号一覧
SPALM入門
作品集
自作関数活用術
ダウンロード先
うpロダ
wikiの使い方
SPALMまでの歴史
現行スレ