此代码使用Simpson's rule,但通过以下公式给出多边形的错误区域:
def defineArea(xCoords, yCoords):
i = 0
sum = 0
for i in xrange(len(xCoords) - 1):
result = (xCoords[i] - xCoords[i+1])*(yCoords[i]+ yCoords[i+1])
i +=1
sum = 0.5*(sum + result)
print "Total 2D area is: ", sum*
我做错了什么? 如何仅使用坐标来计算Simpson规则的多边形面积?
答案 0 :(得分:2)
不要在循环中执行sum = 0.5*(sum + result)
。此外,一旦它在循环之外,您根本不需要sum
变量。在循环完成后,只需result = 0.5 * result
,然后打印result
。
您还需要切换xCoords[i]
和xCoords[i+1]
。
答案 1 :(得分:1)
做“比尔蜥蜴”说的话(抱歉我还不能发表评论),或者你也可以在循环中做到这一点:
sum = sum + 0.5*result
此外,您正在(xCoords[i] - xCoords[i+1])
而不是(xCoords[i+1] - xCoords[i])