2017-10-26 11 views
-3

、すなわち外部ループ&内側ループ二つのループを有する多角形を考えます。誰かがレイキャスティングアルゴリズムがそのような場合にどのように動作するかを私に説明してもらえますか?可能であれば、より視覚的に理解しやすくするために、いくつかの画像/図面を答えてください。誰かがポリゴン内のポイント、すなわち閉じ込めチェックのためのレイキャスティングアルゴリズムについて説明できますか?この問題を添付画像に示すように、

Exampleenter image description here

+0

あなたはLSB交差点の数のを穴を得たかどうかは関係ありません[ヒットテスト](https://stackoverflow.com/a/24465094/2521214)を参照してくださいあなたは、多角形の内部または外部にある場合はヨーヨーを教えてくれます。唯一の問題は、あなたの光線が通過するのではなく、一点でエッジに触れている場合です。あなたはそのようなものを検出し、それらを数えたり2度カウントしたりする必要はありません。あるいは、光の方向を変えて全く起こらないようにする必要があります。私はいくつかの記事で読んでも、個人的にいくつかのケースで観察 – Spektre

答えて

0

直線(また、曲線で動作する)に沿った目標点に無限遠から移動点を想像。

無限遠点は形状の外側にあります。アウトラインが満たされるたびに、あなたは外側から内側に、または逆に切り替わります。このルールは、内部ポイントと外部ポイントを定義します。与えられた場合、丸い矩形の内側、内側の円は除外されます。アルゴリズム的

enter image description here

、あなたがターゲットに半直線と形状を定義するセグメントの交点を数えます。

+0

このアプローチは、不規則な形状、すなわち線が「タンジェント」のようなものを形成し、外側に一度、その後、単に「タッチ」一点を、交差している場合とポリラインに失敗します。または、ポリラインが交差し、そのような交差点を光線が正確に交差する場合はどうなりますか?または、光線がポリラインのセクションを横切って、この同じポリラインの2つの線が正確に重ね合わされている場合です。上記の3つの例では、ロジックが間違った結果を返します。 – Shreekant

+0

誰かが私の上記のコメントに記載されたケースの解決策を提案することができます。レイキャスティングアルゴリズムでこれらを処理できない場合は、上記の問題を解決する他の方法を提案してください。 – Shreekant

+0

"その結果が間違っています":このような場合に期待される結果が何であるかを定義していれば実際のアプリケーションでは、これらの点はゼロ設定尺度を形成し、それを処理するのには苦労します(ちなみに、レイキャスティングによって返される結果は非常に一貫しています*)。 –

関連する問題