您没有正确实现Shoelace formula。我修改了一点你的代码来修复它:sum1=0.0
sum2=0.0
b=input("Number of corners: ")
matrix=[None]*(b+1);
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
matrix[i]=(X,Y)
xp=X
yp=Y
matrix[b]=(x1,y1);
print matrix
for i in range(len(matrix)-1):
sum1 = sum1 + matrix[i][0]*matrix[i+1][1] ;
#print str(matrix[i][0]) +'*'+str(matrix[i+1][1]) +'='+str(matrix[i][0]*matrix[i+1][1]);
for i in range(len(matrix)-1):
sum2 = sum2 + m