dA-tools.com

逆正接 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に向けるベクトルのメソッドです。
  • 詳しくはこちらLinkIcon3D