2種類のほぼ単純なポリゴンの検出
私は与えられた非シンプルなポリゴンがあるかどうかを決定する際の複雑さに興味があり、ほぼ二つの異なる形式的な感覚のいずれかで、シンプル:弱いシンプルまたは非自己交差を。これらの用語は広く知られていないため、いくつかの定義から始めましょう。 ポリゴン いくつかの有限のシーケンス結ぶ線分の閉サイクルで平面内の点の。ポイントはポリゴンの頂点と呼ばれ、セグメントはそのエッジと呼ばれます。頂点を順番にリストするだけで、任意のポリゴンを指定できます。p 0、p 1、p 2、… 、p n − 1 p iPPPp0,p1,p2,…,pn−1p0,p1,p2,…,pn−1p_0, p_1, p_2, \dots, p_{n-1}pipip_ipipi+1modnpipi+1modnp_i p_{i+1\bmod n} n個の頂点がすべて異なり、エッジが端点でのみ交差する場合、ポリゴンは単純です。同様に、ポリゴンが円と同相であり、すべてのエッジが正の長さである場合、ポリゴンは単純です。ただし、一般に、ポリゴンの頂点とエッジは任意に交差する場合があります。1nnn 交差点が両方の共通のサブパスである2つのポリゴンパスとを検討します(1つのポイントである可能性があります)。エンドポイントが共通のサブパスA \ cap Bの近傍の境界で交互になる場合、と交差と言います。ポリゴンは、2つの交差サブパスがある場合は自己交差し、それ 以外の場合は非自己交差します。2B A BAAABBBAAABBB A ∩ BA(0),B(0),A(1),B(1)A(0),B(0),A(1),B(1)A(0), B(0), A(1), B(1)A∩BA∩BA\cap B ポリゴンは、単純なポリゴンのシーケンスの制限である場合、または同等に、ポリゴンを単純にする頂点の任意の小さな摂動がある場合、弱く単純です。弱く単純なポリゴンはすべて非自己交差です。ただし、一部の非自己交差ポリゴンはそれほど単純ではありません。 たとえば、以下に示す6つの点a、b、p、q、x、yを考えa,b,p,q,x,ya,b,p,q,x,ya,b,p,q,x,yます。 ポリゴンabpqyzabpqyzabpqyzは単純です。左図をご覧ください。 多角形papbpqyqzqpapbpqyqzqpapbpqyqzqは非常に単純です。中央の図は、近くの単純なポリゴンを示しています。ただし、このポリゴンはppp 3回アクセスするため、単純ではありません。 サブパスと交差するため、ポリゴンは自己交差します。直観については右図をご覧ください。b p q z y q p apapbpqzqyqpapbpqzqyqpapbpqzqyqbpqzbpqzbpqzyqpayqpayqpa 最後に、多角形(中央の多角形の周りに2回)は非自己交差ですが、それほど単純ではありません。直感的に、このポリゴンの回転数は、単純なポリゴンの回転数はなければなりません。(正式な証明には、いくつかのケース分析が必要です。一部は、回転角度が角度のポリゴンに対して実際に明確に定義されていないためです!)± 2 ± 1 …