見出し画像

processing #8 ばらばら回転

オブジェクト指向が分かったような、分かってないような微妙な絶妙な感覚でとりあえずのんびりコードを書いていきます。

1 今回のコード

crel ano1;
crel ano2;
crel ano3;
int t=0;
int p=0;

void setup() {
  ano3 = new crel(900);
  ano1 = new crel(600);
  ano2 = new crel(300);
  size(600, 600);
  background(255);
}

void draw() {
  ano3.upDate();
  ano1.upDate();
  ano2.upDate();
}

void keyPressed() {
  if (key=='a') {
    ano2.add();
    background(68);
  } else if (key=='s') {
    ano2.less();
    background(210);
  } else if (key=='d') {
    ano1.add();
    background(178);
  } else if (key=='f') {
    ano1.less();
  }
  else if(key=='g'){
   ano3.add(); 
  }
  else if(key=='h'){
    ano3.less();
  }
}

class crel {
  int x;
  int p=0;
  crel(int a) {
    x=a;
  };

  void upDate() {
    pushMatrix();
    translate(300,300);
    rotate(PI/24*p);
    ellipse(0, 0, x, x);
    for (int i=0; i<24; i++) {
      line(0, 0, x/2*cos(radians(15*i)), x/2*sin(radians(15*i)));
    }
    popMatrix();
  }
  
  void add(){
   p++; 
  }
  
  void less(){
   p--; 
  }
}

2 作品ギャラリー


3 今回の作ったイメージ

とりあえずkeyPressed()の入力に対して出力を変化させるものが作りたかったので、keyPressed()で各インスタンスのメンバを変化させられるように書きました。

とりあえずばーーーって、コードを書いて、その時は、まだclass crel{}はなくて、とりあえずつくりたいものができたら、今度はどれだけまとめられるかなーと思って、まとめていきました。

なので、今回は1つの円を描くクラスを作って、たくさん円を表示させて(インスタンスを生成して)その各回転を変更できるようにキーに紐づけしていくイメージです。

4 余談

最近、processingだけじゃなくてプログラミング言語の勉強法っていうか、学習法について聞かれることがあるのですが、やっぱり人のコードとか作ったもの見るのが一番かなって思います!

例えば、自分のprocessingでいえば、codeの書き方はFALさんのコードづくりを、何回も見直して学ぶし、作りたいものとかやってみたいことは、decoさんの作品とか見ることでインスピレーション受けて作ってたり(見てるだけでも楽しい)するので、そういう人に出会えることも重要っていうか、幸せというか、まあ楽しく書ければ、all ok!って感じだとおもいます笑

ここまで読んでいただきありがとうございます。

いいなと思ったら応援しよう!