理解罗盘的布局算法

时间:2012-08-12 17:14:50

标签: java graph clojure visualization graphviz

我希望可视化代表某些地理地图的图表。因此,我的图形的边缘与罗盘(北,南,东,西)相关联。图表本身是定向的,可以是非循环的。

例如我有节点:House-1,House-2,House-3有边[House-1,north-of,House-2],[House-2,east-of,House-3]。

我正在寻找一种可以理解罗盘的布局算法(也许是提示?)

我经历过JUNG,JGraph,GraphViz,似乎没有人做我想做的事,但我可能错过了一些东西。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

最近有一篇论文涉及这个问题,他们试图重建旧的韩国土地记录(干部)。本文中有一种布局算法可以做你想要的。它没有提供所有细节,但确实给出了具体细节和引用。

Hyungmin Lee,Sooyun Lee,Namwook Kim和Jinwook Seo。 2012. JigsawMap:通过映射历史文本密码来连接过去和未来。在2012年ACM计算系统人为因素年会上的会议记录(CHI '12)。 ACM,纽约,纽约,美国,463-472。 DOI = 10.1145/2207676.2207740

JigsawMap Example

答案 1 :(得分:0)

@edallme:很好的文件,有趣!

@DaoWen:

我在你的帖子中理解的是你正在寻找一种算法来将所有的块放在地图上而不是“小部件”来做它(所以也许我错了?)。

如果您询问有关计算如何放置块的想法(知道“图形本身是定向的并且可以使其成为非循环”),则以下方法应该起作用,与您使用的图形库无关。:< / p>

您可以尝试 - 首先 - 生成依赖关系图,例如每个节点受其他节点约束(相对位置和偏移,例如SOUTH / 30units)。这堆代码也应该检查不连贯性。

其次,计算每个块的相对位置,将min和max存储在某处(参见第3部分),以及对具有最小/最大位置的对象的引用。

第三,您应该能够使用最小/最大相对位置虚拟生成全尺寸图表尺寸。

然后,你“只是”必须从角落里画出来。