用直线划分两组点

时间:2014-09-14 18:25:08

标签: c++ geometry cross-product

假设我在2D空间中有两组点A和B.我想知道是否存在一条直线,其中一侧有A的所有点,另一侧有B的所有点,如果可能的话,找到一条这样的直线。我在搜索时发现了this的问题,但它更像是一条“最合适的”问题。

直观地说,我觉得这是一个关于跨产品的问题,但我无法弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:1)

您可以找到每组点的凸包,然后按照此问题中的步骤确定它们是否相交(如果它们没有,则返回分界线):

How do I determine if two convex polygons intersect?

答案 1 :(得分:0)

在机器学习中,经典的解决方案是支持向量机(SVM)。它将推广到N维,在没有解的情况下找到最佳近似值,如果有多个解,它将优化分频器左右边距。那么可能有点矫枉过正,但已经有多种实现可用。 (例如OpenCV)