本章描述了对于给定的点集计算特定类的最佳外接对象的算法。如果类由d维欧氏空间中的所有球体组成,并且best被定义为具有最小半径,则我们获得最小的封闭球体。
1、介绍
边界体积可用于获得复杂对象的简单近似值。例如,考虑决定两个移动多边形当前是否相交的问题。一个明显的解决方案是离散时间,并对任何时间步长执行完全交叉测试。如果多边形大部分时间都相距很远,则没有必要这样做。相反,在两个多边形的初始位置计算简单的边界体积(例如,圆)。在随后的时间步骤中,移动边界圆之间的相交测试取代实际的相交测试;只有当圆确实相交时,才执行多边形之间昂贵的相交测试。在实践中,边界体层次通常用于简单边界体之上,以更准确地近似复杂对象。
边界体积也经常用于提取对象的几何特性。例如,点集的最小封闭环可以用来测试一组点是否近似共面。在这里,环面的宽度(或其面积,或我们使用的另一个标准)是衡量这种性质的好方法。
2、多维空间的边界球体
我们为任意维度提供类Min_sphere_of_spheres_d<Traits>,以计算点和球体的最小封闭球体。维度以及输入类型取决于所选择的特征类。
为任意维度提供类Min_sphere_of_spheres_d<Traits>,以计算点和球体的最小封闭球体。维度以及输入类型取决于所选择的特征类。
上面使用Min_sphere_of_spheres_d来计算点的最小圆。此软件包还提供了类Min_circle_2和Min_sphere_d,但它们的速度较慢,并且仅应在Min_sphere_of_spheres_d不支持的齐次坐标的情况下使用。
3、多维中的有界环
为任意维度提供类Min_anulus_d<Traits>,以计算一组点的最小封闭环。在2D中,环空由两个同心圆组成,在3D中由两个同轴球体组成。
4、二维中的各种边界区域
提供解决方案的其他类是平面中的椭圆(Min_ellipse_2<Traits>)、矩形(Min_rectangle_2())、平行四边形(Min_parallelogram_2()和条形(Min_strip_2()),并具有适当的最优性标准。
5、多维空间中的近似有界椭球
虽然该包提供了一个精确的最小2D椭圆,但它还提供了类Approximate_min_ellipsoid_d<Traits>,以计算具有用户指定的近似比率的近似最小体积封闭椭球。
6、矩形P中心
边界体积还定义对象的几何“中心点”。例如,如果两个对象要匹配(近似),一种方法是首先应用将其最小封闭球体的中心映射到彼此上的平移。当然,更简单的中心是可能的(重心、边界框的中心),但在某些情况下,更高级的边界体积可能会产生更好的结果。考虑几个中心点而不是一个中心点也是有意义的。例如,我们提供了覆盖具有两到四个最小框(rectangular_p_center_2())的平面点集的算法。下面是一个用三个盒子覆盖的例子;中心点显示为红色。