【Unity】座標間の角度と方向


座標 a と座標 b の間の角度を求める方法と、角度の方向を求める方法メモ。

物体の回転なんかをタッチで操作するときに使えるかも。

 

まず角度のみを求める場合には次のようにする。

度で返ってくるのでラジアンにしたい場合は Mathf.Deg2Rad をかける。

 

鋭角であれば正規化して内積をとって arccos すればそのままラジアンが計算できる。

外積の式を使ってもいい。

ラジアンから度にするには  Mathf.Rad2Deg をかける。

 

角度と方向

Vector3 のだと、どこから見ての回転方向なのかを定義しないといけない。

次の式から回転軸を求めることが出来る。

Vector3.Cross(v3a - v3center, v3b - v3center);

この軸から見て正の方向に回転していることになる。

 

Vector2 は平面に垂直な軸を用いて方向も計算できる。

Vector2 では外積(Cross積)はないので自分で定義して計算する。

 


コメントを残す

メールアドレスが公開されることはありません。