algorithm - 避免图中的边相交

标签 algorithm graph drawing draw

如何避免图中的边相交?

1 the graph is a tree

2 the nodes may have at most 4 children

3 I may draw the node at any distance from its parent

这是我的图表示例:

enter image description here

所以,我的想法是从左到右逐个节点、逐条边绘制图形,当我遇到分支时我应该采取一些行动(将之前的分支进一步分开,我认为之前的节点是那些节点如果我们只在根的方向移动(在根上方的图像上是开始 - 最左边的节点),则可以从当前节点到达它们。

这就是问题所在:仅通过修改先前的节点,仍然有可能获得边的交集。例如,在上一张图片上,如果我将一个节点添加到最右上端,那么之前的所有节点甚至不需要任何修改(以防止交叉),但交叉会发生。

enter image description here

最佳答案

http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=3A013A211737A56256D8A895B937DBDF?doi=10.1.1.51.6677&rep=rep1&type=pdf有一个线性时间算法在没有任何边相交的网格上绘制平面图。这对你有用吗?

关于algorithm - 避免图中的边相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51597143/

相关文章:

javascript - 二维多边形边中的矩形镶嵌不重叠

javascript - 在 Javascript 中绘制带箭头的直线

algorithm - HackerRank 糖果分布

高效计算数据流的最大值和最小值

python - 水平绘制具有层次结构的 networkx 图并操纵箭头的长度

Azure:可以将委托(delegate)的 API 权限分配给托管标识吗?

winapi - Win32 - 什么可能导致不正确的绘图?

c++ - 如何找到有向图中选定节点内是否存在循环?(C++)

java - 在算法的上下文中,什么构成 'array access'?

r - 如何在对数刻度上绘制 CCDF 图?