在Python中查找多边形面积的程序
假设我们有一个有序点列表,表示在2D平面上的简单多边形的端点。我们必须找到此多边形的面积。
因此,如果输入为points = [(0,0),(0,5),(3,5),(3,0)],则输出将为15。
要解决这个问题,我们将遵循以下步骤−
- 定义函数getInfo()。 这将获取x1,y1,x2,y2
- 返回x1 * y2 – y1 * x2
- 从主方法开始,执行以下操作
- 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 | / 2.0
实例
让我们看以下实现,以更好地理解−
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)
返回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