使用坐标法计算多边形面积的Python程序,其结果总是等于z

2024-10-05 10:00:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个程序,用用户输入的二维坐标,用坐标法计算面积。我请求帮助是因为每次我运行这个程序,结果总是等于零。在

n= int(input("Enter number of corners:"))
TotalArea=0.0
for x in range (n):
    y=x
    a= input("Enter X%d coordinate:"%(x+1))
    b= input("Enter Y%d coordinate:"%(y+1))
    if (x,y)==1:
        x1=a
        y1=b
        TotalArea+= (x1*prevy-x2*prevx)
    elif 1<(x,y)<n:
        prevx=a
        prevy=b
        TotalArea+= (prevx*b-prevy*a)
    elif (x,y)==1:
        x1=a
        y1=b
        TotalArea+= (prevx*y1-prevy*x1)
    Area= abs(TotalArea)/2
    print Area

Tags: 用户程序numbercoordinateinputareaintx1
1条回答
网友
1楼 · 发布于 2024-10-05 10:00:38

嘿,伙计们,我找到了一个解决办法,抱歉,如果我没有回答,我真的是全神贯注在课堂上。@欧美罗是对的,表情并没有如我所料。我修正了变量,使它们不那么混乱,我只是修正了缩进中的级别。在

n= int(input("Enter number of corners:"))   
Area= 0.0
print "Enter Polygon corners"
for i in range (n):
    x= input("Enter X%d coordinate:"%(i+1))
    x= float(x)
    y= input("Enter Y%d coordinate:"%(i+1))
    y= float(y)
    if i== 0:
        x1= x
        y1= y
    else:
        Area+= (px*y- py*x)
    px= x
    py= y
Area+= (x*y1- y*x1)# i vow to never forget this part again
print "The Area is equal to %f"% (abs(Area)/ 2)

相关问题 更多 >

    热门问题