概要
- 3D空間でオブジェクトを動かす方法の探求
- パラメトリック方程式を使ったパスの定義
- 円、スパイラル、球面ヘリックスの実装例
- 数学的関数で複雑な動きを実現
- 創造的な3Dパス設計の基礎解説
3D空間でオブジェクトを動かす方法
- 3D空間 でオブジェクトを動かすには、 x, y, z座標 を設定
- x軸 は左右方向、 y軸 は上下方向、 z軸 は奥行き方向を表現
- オブジェクトの動きを制御するには、 時間t を使った数式で各座標を定義
- 例:x = 10 * cos(πt/2) により、x軸上で周期的に移動
- cos関数やsin関数 を使うことで、円運動や振動運動を実現
- xとyに異なる関数を設定することで、2次元のパス(例:円)を作成
円運動とスパイラルの実装
- x = 10 * cos(πt/2)、y = 10 * sin(πt/2) で円軌道を描画
- xが10のときyは0、xが0のときyは10という位相差を持つ
- xやyの関数に 0.03 * t を掛けると、半径が時間と共に拡大
- 半径が増加することで スパイラルパス を形成
球面ヘリックスの動き
- 球面ヘリックス は3次元空間で螺旋状に動くパス
- z座標に 10 * cos(0.02 * πt) を使い、z軸上で円運動
- x, y座標には sin(0.02 * πt) を掛けて、半径が途中で大きくなり、端で小さくなる
- これにより、球面上を巻きつくような螺旋運動を実現
- 3つの関数を組み合わせて、オブジェクトの位置を随時更新
パラメトリック方程式と応用
- 各座標を 時間などの変数で表現する関数 を パラメトリック方程式 と呼称
- パラメトリック方程式を使えば、どんな複雑なパスでも設計可能
- 単純な円、スパイラル、球面ヘリックス、さらにはカオス的に見えるパスまで
- すべては数学的な関数で定義されたパス
まとめと参考情報
-
3D空間でのオブジェクト移動は 座標を関数で制御 することで実現
-
パラメトリック方程式 の理解が創造的なパス設計の鍵
-
詳細は Wikipediaのパラメトリック方程式 の記事も参照
-
さらに学びたい場合は visualrambling.space や DamarのTwitter もおすすめ
- visualrambling.space: https://visualrambling.space/moving-objects-in-3d/
- Twitter: https://twitter.com/damarberlari_blank
付記
- 本記事は Damar による個人プロジェクト
- 3D数学、Three.js、WebGL、球面座標、ヘリックス形状、数学的可視化などをカバー
- 興味があればTwitterのフォローや友人へのシェアも歓迎