AnotherKAME - Key さんの作品に現れたもう一つのカメ
なんで新しく追加したかというと・・・・thoruさんのわがままにつきあったから。
前記事のメインスクリプトは、
void setup(){
void draw() {
で、今回のメインスクリプトは
int len=0;
LOGO2D k = new LOGO2D(0,0,0);;
void setup(){
void draw() {
これを見ただけで、ああそうか!となる人は相当なProce55ing通
(ただし、「クラス化しただけじゃん!」は却下)
Proce55ingのdraw関数は繰り返し呼ばれるんで、実は後者が自然なスクリプト。
だけど、LOGO(KAMEのこと)の本来の制御は逐次解釈型なんで、P5では自然に表現しづらかったのでした。
void setup(){
size(300,300); //窓の大きさは300×300
strokeWeight(0);
}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を増やしながら
}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°向く
}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);
}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°向く
}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のほうはこっそり修正予定)
3DもLOGOに衣替え予定だが、お絵描きカメは非常にトリッキーなことをしているので、3Dからは消える見込み。
(3Dのほうはこっそり修正予定)
なので、非常に地味なお披露目でした。