根据不规则边界点确定区域

时间:2013-02-05 17:24:12

标签: javascript algorithm math

所以说我给了一套积分:

0, 0
0, 5
5, 5
5, 3
4, 3
4, 2
5, 2
5, 0
0, 0

这些点构成形状/对象的边界

该对象如下所示:

 __________
|          |
|        __|
|       |__
|          |
|__________|

我如何以数学方式确定该区域? (在示例中它将是24 ..)

此外,更重要的是,如何在数学上确定每个1个单位的x,y坐标为1个单位框? (在这个例子中,一些框的坐标位于(0,0),(0,1),(0,2)等等......)

2 个答案:

答案 0 :(得分:1)

如果形状为,则可以将其分解为三角形,然后将所述三角形的面积相加。

如果形状都是矩形(如示例所示),那么您只需要对每行的起点和终点之间的范围求和。

如果形状是凹的,那么它实际上更难。更多信息:

http://math.tutorvista.com/geometry/concave-polygon.html

答案 1 :(得分:0)

从数学上讲,如果你只有顶点,你就不能。根据定义,顶点集合不描述唯一的多边形。要获得对象的这种独特描述,还需要顶点之间的边。只有这样才能确定您可以计算定义的多边形的表面积。

因此,在您的示例中,您可以通过仅在顶点数组中的两个连续顶点之间定义边来解决此问题。我不知道你的情况是否属于这种情况。