Bu mümkün.
Çokgen düşünün ve "içbükey" köşeleri düşünün. Tam olarak hangi çizgilerin çokgeni iki kereden fazla keseceğini tanımlarlar. Aşağıdaki şekilde, yasak açıların aralıklarını (kırmızı olarak) işaretledim. Bunları bir araya getirir ve kırmızı diskte bir delik görürseniz, yetkili açılar (mavi renkte) vardır. Poligon daha sonra herhangi bir eğim çizgisine göre monoton olur - 1 / tan δ (yeşil).δ−1/tanδ
Şimdi algoritma.
Let olduğu I çokgen inci tepe. İlk olarak, mutlak açısını hesaplamak α i kenarının ( v ı v i + 1 ) ve iç açı β i tepe noktası v ı . Tüm iyi programlama dillerinde mevcut işlevi kullanın .vi=(xi,yi)iαi(vivi+1)βiviatan2
β i = α i + 1 - α i + { 0 ise α i + 1 ≥ α i 2 π ise α i + 1 < α i
αi=atan2(yi+1−yi,xi+1−xi)
βi=αi+1−αi+{02π if αi+1≥αi if αi+1<αi
s=∑iβi−nπs=−2πs=2π
mπβj>πδ∪j[αj+1,αj]πjβj>π
(δ<αj+1∨αj<δ) if αj+1<αj
(αj<δ<αj+1) if αj<αj+1
αjαj[0,π)πδ
O(n2)αj mod πγ1,…γmδ∈{γ12,γ1+γ22,…,γm−1+γm2,γm+π2}
δ sonraL var ve eğimli - 1 / bronzlukδ. Aksi takdirdeP monoton değildir.