此代码使用辛普森法则,但通过公式给出多边形的错误区域:

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*我做错什么了?如何用辛普森法则仅用坐标计算多边形的面积?
发布于 2016-03-03 16:10:08
不要在循环中执行sum = 0.5*(sum + result)。而且,一旦sum变量在循环之外,就根本不需要它了。只需在循环完成后执行result = 0.5 * result,然后打印result。
您还需要切换xCoords[i]和xCoords[i+1]的顺序。
发布于 2016-03-03 16:16:27
照“蜥蜴比尔”的话去做(对不起,我还不能发表评论),或者你也可以在循环中这样做:
sum = sum + 0.5*result另外,您正在执行(xCoords[i] - xCoords[i+1])而不是(xCoords[i+1] - xCoords[i])。
https://stackoverflow.com/questions/35777124
复制相似问题