Writing an uncomplicated, robust, and scalable three-dimensional convex hull algorithm is challenging and problematic. This includes, coplanar and collinear issues, numerical accuracy, performance, and complexity trade-offs. While there are a number of methods available for finding the convex hull based on geometric calculations, such as, the distance between points, but do not address the technical challenges when implementing a usable solution (e.g., numerical issues and degenerate cloud points). We explain some common algorithm pitfalls and engineering modifications to overcome and solve these limitations. We present a novel iterative method using support mapping and surface projection to create an uncomplicated and robust 2d and 3d convex hull algorithm.
翻译:摘要:编写简洁、鲁棒且可扩展的三维凸包算法充满挑战与难点,包括共面与共线问题、数值精度、性能及复杂度权衡。尽管已有多种基于几何计算(如点间距离)的方法可用于寻找凸包,但这些方法在实现可实用方案时未能解决技术挑战(例如数值问题与退化点云)。本文阐释了常见算法陷阱及克服这些局限性的工程改进措施,并提出一种基于支撑映射与表面投影的迭代方法,以构建简洁且鲁棒的二维与三维凸包算法。