4

一位同学为班级打印了一张数据库图,用线条表示表之间的关系。但是,他的台词遍地都是,看起来很难看。

所以我开始考虑一种移动桌子的方法,以最小化总线距离,我想不出一种方法来做到这一点,除了将它们全部移动到彼此之上。所以基本上:给定一些 2d 坐标空间上的 N 个项目和这些项目对之间的一定数量的连接,你如何移动项目以使对之间的总距离最小,但没有距离小于 S?(这样表格就不会靠得太近)有什么算法可以解决这个问题吗?

(我意识到最小的总距离不一定会使布局不那么难看;线条可能仍然交叉。但表格布局正是让我想到的)

4

1 回答 1

3

一些提示:

http://en.wikipedia.org/wiki/Graph_drawing

http://en.wikipedia.org/wiki/Force-based_algorithms

数据库模式图是图的一种情况(或者可能是树,具体取决于您的模式)。

干杯

于 2010-04-14T04:31:28.803 回答