Processingでマウスの動きに合わせて画面に波紋ができるようなプログラムを作りたいと思っております。
その際、以下のサイトを見つけて参考にさせていただきました。
http://www.neilwallis.com/projects/java/water/index.php
読み込んでみたのですが、いまいち何をやっているのか分りません。
サイトには簡単な説明があるのですが、コード内のどれに対応しているのかが掴みづらいです。
もしよろしければ以下のコードの変数が何に対応していて、行っている操作が何を表しているか、などのことをコメントとして記していただけるとありがたいです。
何卒よろしくお願いします。
public void newframe() { 2 //Toggle maps each frame 3 i=oldind; 4 oldind=newind; 5 newind=i; 6 7 i=0; 8 mapind=oldind; 9 for (int y=0;y<height;y++) { 10 for (int x=0;x<width;x++) { 11 short data = (short)((ripplemap[mapind-width]+ripplemap[mapind+width]+ 12 ripplemap[mapind-1]+ripplemap[mapind+1])>>1); 13 data -= ripplemap[newind+i]; 14 data -= data >> 5; 15 ripplemap[newind+i]=data; 16 17 //where data=0 then still, where data>0 then wave 18 data = (short)(1024-data); 19 20 //offsets 21 a=((x-hwidth)*data/1024)+hwidth; 22 b=((y-hheight)*data/1024)+hheight; 23 24 //bounds check 25 if (a>=width) a=width-1; 26 if (a<0) a=0; 27 if (b>=height) b=height-1; 28 if (b<0) b=0; 29 30 ripple[i]=texture[a+(b*width)]; 31 mapind++; 32 i++; 33 } 34 } 35 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/03 14:48