前橋工科大学院 - システム生体プログラミング特論 2020
openFrameworksで複数の図形を動かす – 配列 (Array) と可変長配列 ( std::vector)
前回はopenFrameworksで、位置と速度という2つの変数 (Veriable) を使用して図形1つをアニメーションさせるところまで到達できました。今回はこのプログラムを応用して複数の図形を同時に動かす方法について解説していきます。複数の図形を動かすには位置と速度という2つのベクトルを個別の変数にではなくまとめて取り扱うデータの格納方法が必要となります。こうした場合には配列(Array)を使用すると便利です。それぞれのベクトルを配列にまとめることで、大量の図形のアニメーションをシンプルに記述することが可能です。さらに、あらかじめ物体の最大数が決まっていない際には、可変長配列 (std::vector) を使用するという方法もあります。この方法もあわせて解説していきます。
スライド資料
サンプルプログラム
サンプルプログラムは以下からダウンロードしてください。
本日の課題
本日の最終のプログラム 「一定の数に制限する」 をもとに、2次元のアニメーションを3次元に拡張してください!
ヒント:
- 位置と速度のベクトルをglm::vec2 を glm::vec3 へ
- 座標は、(x, y) から (x, y, z) へと拡張される
- バウンドさせる制限に、z座標の制限もつける
- ベクトルの計算はそのままでOK
作成したofApp.hとofApp.cppが入ったフォルダに以下の名前をつけて、Zip圧縮したものをGoogle Formsから提出してください。
- 学籍番号氏名(英字)
- 例「01234567AtsushiTadokoro」