3.6 運動のスタディ

      3.6 運動のスタディ はコメントを受け付けていません

オブジェクトの運動は、2次元座標の場合はx座標とy座標を連続的に変化させることによって実現します。座標の変化が一定の場合は単調な動きになりますが、複雑な数式を用いなくてもif文などを上手く応用すると複雑な運動が可能になります。このスタディでは、試行錯誤によってアルゴリズムによる運動にどのようなバリエーションを作ることができるかを検証します。

3.6.1 課題

円の運動を使って5種類のバリエーションを作る

目的

  • 単純な円の運動から出発して、どれだけバリエーションを生み出せるかを競う
  • 形態の可能性を試行錯誤によって発見する

条件

  • 使用する要素は黒の正円のみ。背景は白。フェードはさせない
  • 円の数、大きさ、動き方の変化は自由。円の縦横比は変えないこと
  • 5パターンのバリエーションは、単純なアルゴリズムから出発し複雑にしていく
  • 画面は400×400ピクセル
  • 10パターン作りたい人は作ってもいい。その方が勉強になる
  • 次のサンプルを出発点とする【リスト3.6-a】
2016_06_18_20_24
図3.6-a
リスト3.6-a
int eSize = 40;  //オブジェクトのサイズ
int velocity = 5;  //オブジェクトのスピード
int x = 0;  //オブジェクトのx座標

void setup() {
  size(400, 400);
  noStroke();      //輪郭を描かない
  fill(0);      //オブジェクトは黒
}

void draw() {
  background(255);

  /* 軌跡を残す場合は、下の3行をON、backgoundをOFFにする
   fill(255, 50);  //透明度のあるrectを描画
   rect(0, 0, width, height);
   fill(0);      //オブジェクトは黒
   */

  ellipse(x, height/2, eSize, eSize);    //円を描く
  x += velocity;    //x座標にvelocityの値を足す

  //もし、xの値が画面の幅以上になったら、xを0に戻す
  if (x >= width) {
    x = 0;
  }
}

3.6.2 サンプルA

画像をクリックするとサンプルのコードを見ることができます

2016_06_29_14_45
スタディ3.6-a
2016_06_29_14_49
スタディ3.6-b
2016_06_29_14_53
スタディ3.6-c
2016_06_29_14_54
スタディ3.6-d
2016_06_29_14_56
スタディ3.6-e

作成:小澤太一

3.6.3 サンプルB

2016_09_12_12_12
スタディ3.6-f
2016_09_12_12_13
スタディ3.6-g
2016_09_12_12_15
スタディ3.6-h
2016_09_12_12_16
スタディ3.6-i
2016_09_12_12_17
スタディ3.6-j

作成:三上航平