我正在使用ConvexHull类的scipy为一组点构造一个凸包。我感兴趣的是一种计算来自凸包的新点的最小距离的方法。计算到凸包的距离
随着互联网的帮助,并通过自己一点点的调整,我想出了这个公式来计算点P的距离或一组点点的凸包方面:
np.max(np.dot(self.equations[:, :-1], points.T).T + self.equations[:, -1], axis=-1)
对于2D凸壳上面的等式将导致以下情节:
正如你可以看到吨他的结果非常好,并且对于凸包内的点是正确的(这里的距离是负值,需要乘以-1)。对于最接近面的点也是正确的,但对于最接近凸包顶点的点不正确。 (我用虚线标记这些区域)对于这些点,正确的最小距离将是到凸包顶点的最小距离。
我怎样才能点是最接近的小平面或最接近于顶点正确计算的凸壳的最小距离为N维的点P或一组点点区分空间(至少3D)?
使用指向段公式为每个凸包段和采取最低 – user4421975
@ user4421975你能否详细说明你的评论?分段公式的一个要点是什么?每个点的 – Woltan
使用http://stackoverflow.com/questions/849211/shortest-distance-between-a-point-and-a-line-segment计算它到每个凸包的线段的距离,并取最接近的一个 – user4421975