2017-01-28 13 views
-2

私は2つの同心円を持ち、3つの点が円周上にあります。 与えられたランダムな点がこれらの円の間に存在するかどうかを確認する最適化されたメソッドが必要です。2つの同心円の間に特定の点があるかどうかを見つける方法は?各円に3点を与えます

+0

これまでのところ、この問題に対してどのような作業を行いましたか?この問題を解決する最適化されていない方法を開発しましたか?このように複数の問題で円の一方または両方が修正されるため、補助値を事前に計算して保存することができますか? –

+0

私は解決策を持っていますが、それはより多くの時間とプロセッサを必要とします。私は与えられた3点を使って両方の円の方程式を見つけ、下の数式を使って円の外側か内側かを調べました。与えられた点が内側の円の外側で外側の円の内側にある場合、円。 (x-h)^ 2 +(y-k)^ 2 = R^2 – ravz

+2

私は侮辱するつもりはありませんが、問題の最も簡単な部分だけを示しています。どのように各円の中心と半径を見つけるか、または各円の方程式をどのように見つけるか?あなたが私たちにあなたの方法やコードを示すならば、それをあなたのために最適化することができるかもしれません。今のところ、あなたが実際に問題のコードを持っていることは私たちには示されていません。 –

答えて

1

ポイントごとに(x²+y²)、x、y、1を計算できます。最後のエントリは単純に定数です。 4つの与えられた点についてこれらの項を行列に入れ、その行列式を計算する。点が円周である場合、行列式はゼロになります。それ以外の場合は、他の3つの円で定義されている円に対して、どの点がどちらの点にあるかを示す記号が表示されます。シンプルな例を使用して、どの記号がどの方向に対応しているかを確認します。時計回りまたは反時計回りの3つの円の定義点がこの記号にも影響するという事実に備えてください。

4×4行列式を計算することはひどく非効率的に行うこともできます。私はあなたが最初の2つの行からすべての2×2未成年者と最後の2つからすべての2×2未成年者を計算することをお勧めします、あなたは完全な行列式を形成するためにそれらを組み合わせることができます。詳細は、this Math SE postを参照してください。プログラミングのヘルプとは対照的に、さらに数学ののヘルプが必要な場合は、より適切な答えが見つかるかもしれません。

上記は各サークルごとに独立していることに注意してください。ポイントがポイント内にあるかどうかを確認し、ポイントが他のポイントの外側にあるかどうかを確認します。円は円であると仮定されているという事実を利用していない。

関連する問題