0

これが繰り返しの質問と見なされる場合はお詫びしますが、ここで見た答えは私のニーズには複雑すぎます。

線分が円と交差するかどうかを確認する必要があります。円の中心から線までの距離を見つける必要はありません。交点を解く必要もありません。

単純なものが必要な理由は、これをSQLでコーディングする必要があり、外部ライブラリを呼び出すことができず、この式をWHERE句で記述する必要があるためです...基本的には、1つのステートメントで実行する必要があります。に値をプラグインできます。

線分を表す2つの点A(Ax、Ay)とB(Bx、By)、および中心点C(Cx、Cy)と半径Rの円を想定すると、現在使用している式は次のとおりです。

(R R((Ax-Bx)(Ax-Bx)+(Ay-By)(Ay-By)))-(((Ax-Cx)(By-Cy))-((Bx-Cx)(Ay -Cy)))> 0

この数式はリンクテキストから取得され、0,0の中心の円に基づいています。

私が投稿している理由は、私が奇妙な結果を得て、私が何か愚かなことをしたのではないかと思ったからです。:(

4

1 に答える 1

0

これはあなたの質問に正確に答えるものではありませんが、SQL-Select でオンザフライでこれを計算する必要がありますか? これは、DB システムがテーブル内のすべての行 (または残りの where 条件がそれぞれ保持されるすべての行) の式を計算する必要があることを意味し、パフォーマンスが低下する可能性があります。

代わりに、別個のブール列を作成し、挿入時/更新時トリガーでその値を計算することを検討してください。そこでは、テストを 1 行の式に入れる必要さえありません。別の列を使用することには別の利点があります。その列にインデックスを作成できるため、交差する/交差しないレコードのセットを非常に高速に取得できます。

于 2010-06-04T14:52:01.993 に答える