2011-12-23 168 views
1

我正在制作一个程序,通过单击一系列点来选择画布内的区域。点击的点数通过以下方式链接:每个新点都与第一个和最后一个点相关联。我正在寻找一种算法来计算生成的多边形的面积。计算复杂(自相交)多边形的面积

交叉点是允许的,这里是复杂性,所以算法必须通过根据点击点的有序顺序找到多边形并计算其面积来管理这种情况。

经过多次搜索,我发现的最好的是http://sigbjorn.vik.name/projects/Triangulation.pdf,但我需要更容易在Processing.js中实现的东西。

回答

0

首先剪切它们相交的线段。如果输入集很小,您可以简单地检查每一对。否则使用R-Tree。然后计算约束(Delaunay)三角剖分。然后使用射线确定内部三角形并对其区域进行总结。

hth

+0

最后我决定简化不允许相交的问题。不管怎么说,还是要谢谢你。 – mattia 2012-01-09 16:39:25