在Python中查找多边形的周长

在Python中查找多边形的周长

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

所以,如果输入是points = [(0,0),(0,5),(3,5),(3,0)],输出将是16,因为

在Python中查找多边形的周长

两边长为3,两边长为5,所以25 + 23 = 16。

为了解决这个问题,我们将按照以下步骤进行-

  • 定义函数getInfo()。这将获取x1、y1、x2、y2
  • 返回√(x1-x2)^2+(y1-y2)^2(欧几里得距离), 即在(x1,y1)和(x2,y2)之间。
  • 从主方法中,执行以下操作
  • N := points的大小
  • (firstx,firsty):= points [0]
  • (prevx, prevy):=(firstx,firsty)
  • res:= 0
  • 对于i在1到N-1的范围,执行以下操作
    • (nextx,nexty):= points [i]
    • res:= res + getInfo(prevx,prevy,nextx,nexty)
    • prevx:= nextx
    • prevy:= nexty
  • res:= res + getInfo(prevx,prevy,firstx,firsty)
  • 返回res

示例

让我们看下面的实现以获得更好的理解-

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程