物体との衝突2

物体との衝突2


3次元のベクトル反射


3次元では2次元直線ではなく平面に衝突します。平面はふたつのベクトルで定義する事が出来て法線ベクトルはこのベクトルの外積を使って求める事ができます。法線ベクトルが得られれば、あとは2次元の時と同じ手法でベクトル反射を得る事ができます

<サンプル>

vec1,vec2 平面
vi 進入ベクトル
nDush 正規化された法線
vf 反射ベクトル

using UnityEngine;
using System.Collections;

public class RefVector4 : MonoBehaviour {

  Vector3 vec1,vec2,vi,nDush,vf;

  void Start () {
       vec1 = new Vector3(200,250,-300);
       vec2 = new Vector3(50,200,-25);

      vi= new Vector3(100,-50,-50);

      nDush = Vector3.Cross(vec1,vec2).normalized;  //外積により法線を得る(正規化)
       vf = Vector3.Reflect(-vi,nDush);
   }
   
   void Update () {
       Debug.DrawLine(Vector3.zero,vec1);
       Debug.DrawLine(Vector3.zero,vec2);
       Debug.DrawLine(Vector3.zero,nDush,Color.blue);
       Debug.DrawLine(Vector3.zero,vi,Color.green);
       Debug.DrawLine(Vector3.zero,vf,Color.red);
   }
}




  • 最終更新:2013-12-30 21:28:16

このWIKIを編集するにはパスワード入力が必要です

認証パスワード