2Dジオメトリ:ポイントは角度の内側にあるかどうかを確認する方法
質問
私は2Dで、次の幾何学的な問題を持っています:
私は方向および角度によって与えられる無限角度(2D-コーン)キャストそこから点を有します。 (ポイントと方向ベクトルを形成し、角度の各側半分に2D-コーンを形成する)
今私は、2Dでの別のポイントは、外このコーンの内側にあるかどうかをチェックします。
どのようにこれを達成することができますか? ありがとう!
解決
コーンの中心からクエリ点にベクトルを計算します。長さ1であるようにベクトルを正規化する、円錐の中心ベクトルを取り、1
の長さにもこれを正規化
今、ベクトル間の内積を取ります。 2つの正規化されたベクトル間の内積は、それらの間の角度の余弦です。内積のARCCOS(ほとんどの言語でacos
)を取ると、あなたは角度を取得します。コーンの角度(あなたの説明では半分の角度)に、この角度を比較します。その下の場合、質問がコーンの内側にある内指します。
これは、2Dと3Dで動作します。
他のヒント
方向のarctgを用いて方位角を計算します。チェックする点から、原点をSubstract。 (再び正規化ベクトルのarctgを介して)、その角度を計算し、それは角の境界内にあるかどうかを確認します。
私は最善の方法は、コーンの方向に垂直な2次元表面上にポイントを投影することであると言うでしょう。そして、あなたが同じ平面と点の間othogonalの距離を計算します。最後に、あなたはその高さでコーンの幅を知っているので、ポイントはその幅の外にある場合、あなたは見ることができます。
指定された点を原点からのベクトルが中心を通るその法線と角度Aを作成してみましょう。角度Aは、円錐の半分の角度よりも小さい場合、それは内外他にあります。