在scipy的ConvexHull中,“区域”的衡量标准是什么?

时间:2016-02-27 01:37:32

标签: python scipy convex-hull

scipy ConvexHull(参见http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.ConvexHull.html)对象中“area”属性的值似乎不是(我理解的)凸包的区域。另一方面,“体积”的值似乎确实是凸包的面积。

from scipy.spatial import ConvexHull
import numpy

points = numpy.array([[-1,-1], [1,1], [-1, 1], [1,-1]])
hull = ConvexHull(points)

print("Volume is %2.2f" % hull.volume) # Prints 4.00
print("Area is %2.2f" % hull.area) # Prints 8.00

在上面的例子中,我预计4点凸壳的面积为4.0。那就是“音量”。那么“地区”给了我们什么呢?

2 个答案:

答案 0 :(得分:15)

体积和面积是3d概念,但您的数据是2d - 2x2平方。它的面积是4,周长是8(第2对应的)。

答案 1 :(得分:0)

scipy.spatial.ConvexHull 的文档如下:

<块引用>

区域:浮动
输入维度 > 2 时凸包的表面积。当输入点为二维时,这是凸包的周长。

体积:浮动
输入维度 > 2 时凸包的体积。当输入点为二维时,这是凸包的面积。

船体的

areavolume 是表面积和体积。 2D 对象没有表面积或体积,但周长在概念上类似于 3D 表面积,忽略了深度的不足,并且对象所包含的区域类似于 3D 体积但忽略了深度。