给定一组随机链接的随机点,如何定位它们以使它们的链接线不相交?

时间:2013-06-24 08:56:43

标签: c# wpf math line intersection

我有一组点,坐标不是预定的,我可以在创建时设置它们,但是它们的链接是预先确定的。一个点可以有一个或多个链接,但不能为零。

我希望能够在这些点之间的链接线不相交的位置生成这些点的直观表示。根据我迄今为止在研究中所学到的,我相信这有点类似于平面图,但是只有一个链接会有点,我不确定平面图是否能够代表这些。

我不确定是否有一种很好的方式来做我想做的事情,但我会承认数学并不是我强大的套件。到目前为止,我的“最佳”想法是以某种方式检测这些交叉点,然后在某个方向上移动点,以某种方式将交叉点位置考虑在内以重新定位它们,以便不会发生特定交叉点....并循环并执行此操作每个点,直到没有检测到交叉点。然而,我可以使用某种更有效的数学算法,而我根本就不知道。

我对这里的所有建议感兴趣,无论它是否有效。

1 个答案:

答案 0 :(得分:1)

这不是一个容易的问题。这是Google search results for “algorithm to draw a planar graph”。 Boost C ++库有some support for drawing planar embeddings,包括an example。这些当然使用C ++,而不是使用标记问题的C#。