次のシステムがあるとします。
どこ:
A
r
: xz 平面上の半径を持つ円のエッジ上の任意の場所に存在する点。θ
: 正の x 軸と、原点から点へのベクトルの間の角度A
。これは、-PI/2 から PI/2 の範囲である必要があります。B1
: 円と高さ の正の x 軸の交点h1
。B2
: の高さで円と正の z 軸の交点にある点h2
。d1
B1
:との間の距離A
。d2
B2
:との間の距離A
。
仮定:
h1
、h2
、およびr
は既知の定数です。d1
とd2
は既知の変数です。
どうすれば見つけられますθ
か?
arctan2
これは最終的に、 、sine
、およびのかなり高速な関数を持つ組み込みシステムの C で実装されますcosine
。そのため、パフォーマンスは間違いなく優先事項であり、推定値が小数点以下 3 桁まで正しければ使用できます (これは私の三角関数の精度です)。
ただし、数学的なアルゴリズムが与えられたとしても、特定の実装を解決できると確信しています。
それだけの価値があるので、私は次のようになりました:
(d1^2 - h1^2) / r = (sin(θ))^2 + (cos(θ))^2
(d2^2 - h2^2) / r = (sin(PI/4 - θ))^2 + (cos(PI/4 - θ))^2
数学的に、これは私のリーグをはるかに超えていることに気付く前に。