【发布时间】:2015-04-13 05:20:17
【问题描述】:
sum=0.0
b=input("Number of corners: ")
while b < 2:
print "Invalid number of corners."
for i in range (b):
xcoor=(i+1)
X=input ("x-coordinate:")
ycoor=(i+1)
Y=input ("y-coordinate:")
if i==0:
x1=X
y1=Y
xp=X
yp=Y
elif i>=0:
sum+=(xp*Y-yp*X)
xp=X
yp=Y
sum=sum+(X*y1-Y*x1)
area=(sum/2.0)
a=abs(area)
print "Area= %.1f" % (a)
答案总是错误的。为什么?谢谢你。我是新手..我似乎找不到该区域,有时它给出 Area=0.0
当我尝试运行代码并输入坐标为 x 和 y 时,会发生这种情况:
Number of corners: 4
x-coordinate:2
y-coordinate:3
x-coordinate:4
y-coordinate:2
x-coordinate:5
y-coordinate:6
x-coordinate:7
y-coordinate:2
Area= 4.5.
如果我手动计算面积,结果应该是 18。
【问题讨论】:
-
是什么让您认为这是计算闭合多边形面积的正确方法?您是否尝试使用斯托克斯定理进行轮廓积分?
-
我不知道斯托克斯定理是什么,但有人告诉我,我可以使用这个简单的代码来计算多边形的面积。
-
你应该知道斯托克斯定理是什么:将面积积分转换为等高线积分。你的手工计算是否正确?
-
我尝试手动计算面积,但我的答案总是不同且正确。 (我想我应该研究斯托克斯定理。但我想知道为什么这段代码根本不起作用)。非常感谢。
-
请修正您的缩进,并给出示例返回的不是所需的答案。
标签: python python-2.7