Classiclll's Blog

an old boy

AnotherKAME - Key さんの作品に現れたもう一つのカメ

イメージ 1


昨日、「KAME系はこれで最後」っていったけど、一日でまた増殖。
以前の記事、keyさんの作品に現れたカメと見た目も機能もほぼおんなじ。

なんで新しく追加したかというと・・・・thoruさんのわがままにつきあったから。

前記事のメインスクリプトは、
void setup(){
size(300,300); //窓の大きさは300×300
strokeWeight(0);
}
void draw() {
kame(2);
background(#ffffff);
saisho(20,20,-90);iro(0);kameDraw(10);
iro(#ffffff);
saisho(width/2,height/2.-20);
for (int len=30;len<180;len++) { //30から180までlenを増やしながら
akarusa(len*1.1); //明るさ(明度)だけ変化させて書く
mae(len); //線を書きながらlenだけ前に進む
migi(133); //右に133°向く
mae(len); //線を書きながらlenだけ前に進む
migi(167); //右に167°向く
}
}
で、今回のメインスクリプト
int len=0;
LOGO2D k = new LOGO2D(0,0,0);;
void setup(){
size(300,300,P3D); //窓の大きさは300×300
strokeWeight(0);
framerate(10);
k.kame();
background(#ffffff);
k.iro(#ffff11);
k.saisho(150,150,-20);
}
void draw() {
len++;if(len>180) noLoop();
k.akarusa(len*1.1); //明るさ(明度)だけ変化させて書く
k.mae(len); //線を書きながらlenだけ前に進む
k.migi(133); //右に133°向く
k.mae(len); //線を書きながらlenだけ前に進む
k.migi(167); //右に167°向く
}
これを見ただけで、ああそうか!となる人は相当なProce55ing
  (ただし、「クラス化しただけじゃん!」は却下)
Proce55ingのdraw関数は繰り返し呼ばれるんで、実は後者が自然なスクリプト
だけど、LOGO(KAMEのこと)の本来の制御は逐次解釈型なんで、P5では自然に表現しづらかったのでした。

thoruさんにそこを突かれてあわててクラスLOGO2Dを仕立てるはめになった。
3DもLOGOに衣替え予定だが、お絵描きカメは非常にトリッキーなことをしているので、3Dからは消える見込み。
(3Dのほうはこっそり修正予定)

なので、非常に地味なお披露目でした。