algorithm - 如何用不相交的线连接两种类型的点?

标签 algorithm geometry

如何将两组坐标中的点与线连接起来而不与任何相交的线相交?

我有两种类型的点 (a1, a2, ..., an, b1, b2, ..., bn),以及它们的 (x,y)坐标。

a 和点 b 中的每个点必须同时由一条直线连接,这样任何直线都不相交。

如何做到这一点?

输入(类型,x,y):

a x y b x y a x y b x y

输出(ax, ay, bx, by):

ax ay bx by ax ay bx, by

enter image description here

最佳答案

图论 (Google it) 中的欧几里德二分匹配 (EBM) 问题旨在匹配蓝色点和红色点,以最小化所有边长的总和。可以使用 Hungarian Algorithm 来解决.要看出这是一个无交叉图,只需考虑您的“坏”和“好”图片。 “好”图片中边长的总和总是较小。 (这里是 a slightly more detailed argument 。)

这是另一个 SO answer这提供了更多细节。

这里是 an interesting article about how EBM is used on Android to track multi-touch .

关于algorithm - 如何用不相交的线连接两种类型的点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19041140/

相关文章:

algorithm - 预测国际象棋比赛中输赢的机会

Java,位 vector

javascript - 如何验证点以生成圆方程

algorithm - 圆到圆段碰撞

c++ - 绕圆轴的最短距离;使用学位

javascript - 快速排序没有输出

ruby-on-rails - 使用 SecureRandom.hex 时获得重复项的机会有多大?

algorithm - 最大可能的方形画笔画 Canvas

algorithm - 如何计算两个点,每个点都在一条线上,与给定点的距离相等?

algorithm - 获取网格的边界边缘 - 按缠绕顺序