我正在尋找一種算法,它將從一個簡單的凹多邊形中減去一個矩形並返回多邊形的其餘部分。如果矩形包圍多邊形,則餘數爲空。在大多數情況下,看起來至少有一條邊將在矩形和多邊形之間共享。從多邊形中減去矩形
我一直在挖掘互聯網,但我還沒有找到一個好的主角。
有人能指出我正確的方向嗎?
我正在尋找一種算法,它將從一個簡單的凹多邊形中減去一個矩形並返回多邊形的其餘部分。如果矩形包圍多邊形,則餘數爲空。在大多數情況下,看起來至少有一條邊將在矩形和多邊形之間共享。從多邊形中減去矩形
我一直在挖掘互聯網,但我還沒有找到一個好的主角。
有人能指出我正確的方向嗎?
這很簡單:找到矩形和簡單多邊形的邊界之間的交集並在那裏剪切這些分段。這不需要空間搜索結構,因爲多邊形的四條邊是一個常數因子,因此可以在線性時間內運行。
然後計算所有分段的約束Delaunay三角剖分並使用種子點來生長區域。合適地組合區域(簡單多邊形內的三角形減去矩形內的三角形減去外部的三角形,剩下的三角形是你的結果,邊界邊緣是結果多邊形的邊緣。如果答案是太短了。下圖顯示了這個想法。
一)這兩個輸入多邊形
b)在CDT的(板缺)鏈段的插入
c)在生長區域
d)綠色區域之後減去紅色區域
e)d區域的邊界邊緣。
我試圖在[張貼在MathOverflow同樣的問題(http://mathoverflow.net/questions/111296/subtract-rectangle-from-polygon/111323#111323)來回答。 –