在 Python 中查找多边形周长的程序

假设我们有一个有序点列表,表示二维平面上的简单多边形端点。我们必须找到这个多边形的周长。

因此,如果输入类似于 points = [(0, 0), (0,5), (3, 5), (3,0)],那么输出将为 16,因为

两条边的长度为 3,两条边的长度为 5,所以 2*5 + 2*3 = 16。

示例

让我们看看以下实现以更好地理解 -

from math import sqrt
def getInfo(x1, y1, x2, y2):
   return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))

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 res

points = [(0, 0), (0,5), (3, 5), (3,0)]
print(solve(points))

输入

[(0, 0), (0,5), (3, 5), (3,0)]
输出结果
16.0