Boids構築の準備
ここでは、以下のバージョンに沿って、Boidsの準備段階のコードを組み立てていく。
- Boids 0.5~ブラウザ上で指定した数の個体を表示させる
- Boids 1.0~個体を運動させる
- Boids 1.1~各個体が壁との衝突を避けるようにする
- Boids 1.2~個体の形をそれらしくする(内部的には独自クラスを導入)
Boids 0.5~個体の発生と表示
概要
まずスタートアップとして、指定された数の個体を発生・表示させるという簡単な枠組みを作る。
仕様は以下の通り。
- numberボックスで個体数を指定
- “GENERATE”ボタンを押すとcanvasに指定した数の個体が表示される
- 個体の位置はその都度ランダムに設定される
デモンストレーション
コード詳細
Boids 1.0~個体を動かす
概要
発生させた個体を表示させると同時に運動させる。
仕様は以下の通り
- Numberボックスで個体数を指定
- GENERATEボタンを押すとcanvasに指定した数の個体が表示される
- 個体の位置はランダム
- START/STOPボタンを押すたびに、各個体の運動と停止が切り替わる
- 個体のスピードは一定の範囲内でランダムに設定され、スピードは変化しない
- 壁に当たった場合は全反射する
デモンストレーション
コード詳細
Boids 1.1~壁を避ける
概要
各個体が壁をよける動作を導入。壁からの距離に応じた斥力を想定し、それに応じた加速度を計算している。
操作方法はこれまでのものと同じ。
デモンストレーション
コード詳細
Boids 1.2~Vectorの利用と個体の形
概要
このバージョンでは2つのことを導入している。
- 一つは独自クラスのgeom2d.Vectorを利用していること
- 今一つは個体の形を単純な円から任意の形とできるよう変更したこと
操作方法はこれまでのものと同じ。
デモンストレーション
コード詳細