我有一个由二维点组成的列表/数组,形成了一个非凸、非自交的形状。我想计算该多边形所包含的面积。
首先,我需要用提供的点构造一个多边形(非自交)。如果我可以将该多边形三角化,就可以计算面积(我可以容忍一定的相对误差)。
使用scipy的
有人能告诉我如何做吗?
首先,我需要用提供的点构造一个多边形(非自交)。如果我可以将该多边形三角化,就可以计算面积(我可以容忍一定的相对误差)。
使用scipy的
scipy.spatial.ConvexHull()
会导致错误的形状和面积,显然,但是我没有找到可用的算法来解决这个问题。有人能告诉我如何做吗?
def polygon_area(x, y): area = 0.0 for i in range(-1, len(x)-1): area += x[i] * (y[i+1] - y[i-1]) return abs(area) / 2.0
输入参数x
和y
是两个列表,包含了多边形每个点的x和y坐标。返回值是这个多边形的面积。 - SteveJ