2011-12-23 98 views
1

我正在製作一個程序,通過單擊一系列點來選擇畫布內的區域。點擊的點數通過以下方式鏈接:每個新點都與第一個和最後一個點相關聯。我正在尋找一種算法來計算生成的多邊形的面積。計算複雜(自相交)多邊形的面積

交叉點是允許的,這裏是複雜性,所以算法必須通過根據點擊點的有序順序找到多邊形並計算其面積來管理這種情況。

經過多次搜索,我發現的最好的是http://sigbjorn.vik.name/projects/Triangulation.pdf,但我需要更容易在Processing.js中實現的東西。

回答

0

首先剪切它們相交的線段。如果輸入集很小,您可以簡單地檢查每一對。否則使用R-Tree。然後計算約束(Delaunay)三角剖分。然後使用射線確定內部三角形並對其區域進行總結。

hth

+0

最後我決定簡化不允許相交的問題。不管怎麼說,還是要謝謝你。 – mattia 2012-01-09 16:39:25