一个同学打印出一个类的数据库图表,这个类的行用于表示表之间的关系。然而,他的线条遍布整个地方,看起来很丑陋。
所以我开始考虑一种移动表格以最小化总线距离的方法,除了将它们全部移到彼此之外之外,我想不出办法做到这一点。所以基本上:给定某些2d坐标空间上的N个项目以及这些项目对之间的一些连接数量,如何移动项目以使得对之间的总距离最小,但是没有距离小于S? (这样表格就不会太靠近了)是否有一些算法呢?
(我意识到最小的总距离不一定会使布局变得不那么难看;线条可能仍会交叉。但桌面布局正是让我思考的原因)
答案 0 :(得分:3)
一些提示:
http://en.wikipedia.org/wiki/Graph_drawing
http://en.wikipedia.org/wiki/Force-based_algorithms
数据库架构图是图形的一种情况(或者可能是树,具体取决于您的架构)。
干杯