逆正接 atan2()
- 三角関数の正接tan(タンジェント)はパイπ(90°)で無限になってしまうので使いにくいのですが、逆正接atan2(アークタンジェント2)はポイント(x、y)と x 軸によって表されるベクトルの角度(θ)を返します。つまり位置から角度を割り出すことが出来るのです。
- 角度は、y を x で割った角度で、-πからπの範囲の実数となります。
実例
- 矢印が常に●を指し示します。
- 矢印の「回転」角度はレイヤー[Green]の位置がコントロールしています。
矢印レイヤーの「回転」に次の式を書きます。
a=thisComp.layer("Green").position-position;
angle=Math.atan2(a[1],a[0]);
radiansToDegrees(angle)
解説
- 始めに[矢印の位置]から[グリーンの位置]へのベクトルを求めて変数[a]に代入。
- 次に[ atan2( ) ]にその値(y,x)を渡すとオレンジの位置から見たグリーンの角度が求められます。
- それを[ angle ]に代入。
- angle は「ラジアン」なので最後に「度」に変換しています。
- 引数の順序が( y ,x )なので注意が必要です。
コラム
- これに似たメソッドにlookAt(fromPoint,atPoint) があります。
- これは3D 空間でオブジェクトのZ軸をfromPointからatPointに向けるベクトルのメソッドです。
- 詳しくはこちら3D