在一个系统中,我有一个节点列表,这些节点像普通图中一样连接。我们了解整个系统及其所有联系,我们也有一个起点。我所有的边缘都有一个方向。
现在我想自动绘制所有这些节点和边。问题不是实际绘图,而是计算 (x,y) 坐标。所以基本上我想画出整个图表,这样看起来不错。
我的数据结构将类似于:
class node:
string text
List<edge> connections
这个问题一定有一些众所周知的算法吗?我找不到任何东西,但我可能使用了错误的关键字。
我的想法:
一种方法是将我们的起始节点定位在 (0,0),然后有一些常数,即“距离”。然后对于每个邻居,它会将距离添加到 y 位置,并且对于作为邻居的每个节点,设置 x= distance*n。
但这确实会带来很多问题——所以这绝对不是要走的路。