作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何用 Python 计算凸包的周长?我知道 SciPy
有用于凸包的 area
参数;但是,我需要周长
。
最佳答案
您可以迭代凸包的点并计算连续点之间的距离:
import numpy as np
from scipy.spatial.qhull import ConvexHull
from scipy.spatial.distance import euclidean
points = np.random.rand(30, 2)
hull = ConvexHull(points)
vertices = hull.vertices.tolist() + [hull.vertices[0]]
perimeter = np.sum([euclidean(x, y) for x, y in zip(points[vertices], points[vertices][1:])])
print(perimeter)
输出
3.11
注意:您还需要添加一对(最后一个、第一个)
更新
作为替代方案,鉴于数据是二维的,您可以使用 hull.area
。即上述方法返回的值等于area属性的值。如果想要真实的面积,需要查询hull.volume
。
进一步
关于python - Python 中二维凸包的周长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52403793/
好吧,这不起作用!有什么问题呢。有人可以向我指出吗?我已经盯着它看了好几个小时了。我之前寻求过帮助,他提出了结构,但我并没有真正理解它,所以它不起作用。 没有得到正确的计算。我认为读取文件时可能出现问
我需要显示一个圆周。为了做到这一点,我认为我可以为很多 x 计算 y 的两个值,所以我做了: import sympy as sy from sympy.abc import x,y f = x**2
3个不同的类 1个用于处理Circle实例,1个用于Square实例,第3个用于比较之间他们(main) 。在 main 函数中,我找到了 circle (在 c1..c4 之间)和 square (
我是一名优秀的程序员,十分优秀!