我在Windows上使用带有VTK版本5.10.1和MayaVi版本4.3.1的Anaconda 64位。 VTK的Python绑定是vtkSphere::ComputeBoundingSphere
吗?我有一组3D点,我想要最小的边界球。据我所知,vtkSphere::ComputeBoundingSphere
在C ++中执行此操作但我在VTK的Python绑定中找不到此函数。
我发现类vtk.vtkSphere
和help(vtk.vtkSphere)
的输出提到“其他方法可用于与球体相关的计算,例如为一组点或一组球体计算边界球体。 ”。那么,这个功能在哪里呢?
答案 0 :(得分:0)
我仍然没有发现VTK的Python绑定暴露vtkSphere::ComputeBoundingSphere
的证据,但我发现了CGAL库,其Python绑定确实暴露了N维边界球计算。 C ++函数文档位于http://doc.cgal.org/latest/Bounding_volumes/classCGAL_1_1Min__sphere__d.html。
我在http://cgal-python.gforge.inria.fr/使用了过时的绑定(因为http://www.lfd.uci.edu/~gohlke/pythonlibs/#cgal-python有一个Windows安装程序可用)但是如果有人想试试,可以在https://code.google.com/p/cgal-bindings/找到更新的绑定。
假设你有一个名为verts
的顶点列表,下面的代码构造一个Min_sphere_3对象,从中可以得到边界球体的中心和半径。
import CGAL
min_sphere = CGAL.Geometric_Optimisation.Min_sphere_3()
for pt in verts:
min_sphere.insert(CGAL.Point_3(pt[0], pt[1], pt[2]))
# Sphere properties: min_sphere.center(), min_sphere.squared_radius().