我正在尝试找到乖乖包含给定点列表的球体。 点将具有x,y和z坐标[点为3D]。
实际上我试图根据给定的点列表找到新的三个点,通过一些计算找到MinX,MaxX,MinY,MaxY,MinZ和MaxZ并做一些操作并找到新的三个点
我将从这三点中提取球体。
我还将在球体直径上采用所有这些三个点,这样我就有了一个独特的球体。
是否有任何标准方法可以找到包含给定点数列表的范围?
答案 0 :(得分:3)
是的,标准算法是Welzl's algorithm(假设你想要点周围的最小球)。特别是Gaertner的改进版本非常有用,强大且数值稳定!它也能很好地处理所有退化情况。
算法的核心是(随机)置换点以找到位于球体边界上的1-4个点。它基本上是一个聪明的试错算法。从这些点,您可以通过找到与所有这些点具有相同距离的点来找到中心。 Gärtner的版本使用改进的数字设备来找到中心。此外,它采用了额外的旋转步骤,可能会使算法更好地适用于大量输入点。
如果您想要的是一个围绕三个点的球体,我建议您仍然使用Gärtners“设备”来计算三角形的圆周。否则,该方法可能很容易退化(即当三角形非常平坦时)。
答案 1 :(得分:0)
您需要3分或任意数量的分数吗?
如果您只需要3个点的答案,则每对点定义一个线段。采取最长的线段。取一个以该线段中间为中心的球体,其半径为线段长度的一半。有两种情况。
如果你需要任意数量的点,我会做一些迭代近似算法。由于您似乎不需要,我不会详细说明。