2016-04-02 8 views
0

凹状のポリゴンを指定すると、2つの頂点をつなぐセグメント(エッジ)がポリゴン内にあるかどうかをどのように判断できますか?下の図には、元のポリゴンに接続されていない2つの同じ頂点を接続するエッジ(赤色)があります。私は内部と外部をどのように決定するか分かりません。何か助けてくれてありがとう。セグメントがポリゴン内にあるかどうかを確認

Example of polygons

答えて

0

追加のセグメントは、多角形の他のセグメントと交差する場合、それは、部分的に内側と部分的外です。

そうでなければ、例えば追加のセグメント、その中点上の点を取ると、それは内部または外部であるかどうかを確認。点が内側にあるかどうかを調べるには、点がそこから伸びていて、ポリゴンの端点を持つ交差点の数を数えます。交差点の数が奇数であれば、それは内側です。

は簡単に聞こえるが、頂点における共線や交差点などの特別な場合を扱うために調製すること。それが実装を困難にするものです。

+0

ポイントからの光線はどのように延長されますか?それらの数は無限にあります。私が提供している写真の中でも、私は奇妙な/偶然の区別さえわからない。私には、それは常に同じ数になるように見えます。 – Altidore

+0

@Altidore:理論的には、どんな方向でも使用できます。しかし、あなたの例では、いくつかのエッジが同一直線上にあるので、水平線は悪い選択です。それは私が言及した特別なケースの1つです。 –

+0

@Altidore:ちょうど明確にする:両方向の点から伸びる線ではなく、光線は一方向にしか伸びない。だから、あなたはポイントの片側の交差点を数えるだけです。 –

関連する問題