假设我们有一个有序点列表,表示二维平面上的简单多边形端点。我们必须找到这个多边形的面积。
因此,如果输入类似于 points = [(0, 0), (0,5), (3, 5), (3,0)],则输出将为 15。
让我们看看以下实现以更好地理解 -
def getInfo(x1, y1, x2, y2): return x1*y2 - y1*x2 def solve(points): N = len(points) firstx, firsty = points[0] prevx, prevy = firstx, firsty res = 0 for i in range(1, N): nextx, nexty = points[i] res = res + getInfo(prevx,prevy,nextx,nexty) prevx = nextx prevy = nexty res = res + getInfo(prevx,prevy,firstx,firsty) return abs(res)/2.0 points = [(0, 0), (0,5), (3, 5), (3,0)] print(solve(points))
[(0, 0), (0,5), (3, 5), (3,0)]输出结果
15.0