【发布时间】:2016-12-21 06:07:22
【问题描述】:
我需要从一组点计算凸包。
点的尺寸通常为10~30D
集合的大小很小,通常是2~10
而我需要的任务是判断一个点是否在点集构造的凸包内。
有哪些算法可以执行此操作,或者我可以使用任何现有的库?
【问题讨论】:
-
你不需要构造凸包来查看一个点是否在它里面。只需解决一个线性规划问题,看看是否可以通过对一组点进行线性组合来产生该点,所有系数都在 [0,1] 范围内
-
虽然在二维中,凸包可以表示为一个多边形,并且一些 algorithms 以它而闻名,但我不清楚如何在合适的数据结构中表示凸包以获得更高方面;请澄清所需的表示。
-
mcdowella 是对的,在您的情况下,您希望避免计算完整的凸包(时间复杂度随 D 呈指数增长)。如果由于其他原因需要构建凸包,可以使用CGAL。
-
@mcdowella 系数之和必须为 1。
标签: c++ algorithm computational-geometry