首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python的周长函数

python的周长函数
EN

Stack Overflow用户
提问于 2022-05-10 13:55:42
回答 1查看 88关注 0票数 0

我目前正在编写一个程序,它用以下坐标计算一个几何图形的周长:(0.0,0.0) (1.0,5.0) (4.0,8.0) (9.0,4.0) (7.0,1.0)周长应该是26.4214。然而,我的程序打印一个较低的数字。

我知道一个事实,误差在函数的周长,但我不知道如何解决它。如果有人知道怎么做,他们的帮助将是非常感谢的。

非常感谢

代码语言:javascript
复制
def distancia_entre_dos_punts(x1,y1,x2,y2):
    difX=x1-x2
    difY=y1-y2
    distancia=math.sqrt(difX*difX+difY*difY)
    return distancia

def perimetre(pol, num_vertexs):
    perim= 0
    for i in range(0, num_vertexs-1):
        perim=perim+distancia_entre_dos_punts(pol[i,0],pol[i,1],pol[i+1,0],pol[i+1,1]) <----- Error?
        perim= perim+distancia_entre_dos_punts(pol[num_vertexs,0],pol[num_vertexs,1],pol[0,0],pol[0,1])<----- Error?
        return perim
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-10 14:01:59

我认为压痕有问题。

代码语言:javascript
复制
def perimetre(pol, num_vertexs):
    perim= 0
    for i in range(0, num_vertexs-1):
        perim=perim+distancia_entre_dos_punts(pol[i,0],pol[i,1],pol[i+1,0],pol[i+1,1]) <----- Error?
    perim= perim+distancia_entre_dos_punts(pol[num_vertexs,0],pol[num_vertexs,1],pol[0,0],pol[0,1])<----- Error?
    return perim

在这里,解决方案:

代码语言:javascript
复制
import numpy as np
import math


pol = np.array([[0.0, 0.0],[1.0, 5.0],[4.0, 8.0],[9.0, 4.0],[7.0, 1.0]])
print(pol)


def distancia_entre_dos_punts(x1,y1,x2,y2):
    difX=x1-x2
    difY=y1-y2
    distancia=math.sqrt(difX*difX+difY*difY)
    return distancia

def perimetre(pol):
    num_vertexs = pol.shape[0]
    perim= 0
    for i in range(0, num_vertexs-1):
        perim=perim+distancia_entre_dos_punts(pol[i,0],pol[i,1],pol[i+1,0],pol[i+1,1])
    perim= perim+distancia_entre_dos_punts(pol[num_vertexs-1,0],pol[num_vertexs-1,1],pol[0,0],pol[0,1])
    return perim

print(perimetre(pol))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72187684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档