Java 理解罗盘玫瑰的布局算法

Java 理解罗盘玫瑰的布局算法,java,graph,clojure,visualization,graphviz,Java,Graph,Clojure,Visualization,Graphviz,我想可视化一个代表某个地理地图的图形。因此,我的图形的边缘与罗盘玫瑰相关联(北、南、东、西)。图本身是有向的,可以是非循环的 例如,我有节点:House-1、House-2、House-3,其边为[House-1,北面,House-2]、[House-2,东面,House-3] 我正在寻找一个布局算法,可以使了解罗盘玫瑰(也许作为提示?) 我经历过荣格、JGraph、GraphViz,似乎没有人做我想做的事,但我可能错过了一些东西 有什么建议吗?最近有一篇论文讨论了这个问题,他们试图重建旧的韩国

我想可视化一个代表某个地理地图的图形。因此,我的图形的边缘与罗盘玫瑰相关联(北、南、东、西)。图本身是有向的,可以是非循环的

例如,我有节点:House-1、House-2、House-3,其边为[House-1,北面,House-2]、[House-2,东面,House-3]

我正在寻找一个布局算法,可以使了解罗盘玫瑰(也许作为提示?)

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


有什么建议吗?

最近有一篇论文讨论了这个问题,他们试图重建旧的韩国土地记录(地籍)。论文中有一个布局算法,它可以满足你的需要。它没有提供所有的细节,但它确实给出了大纲和具体的引文

李亨民、李秀云、金南宇和徐振宇。2012拼图:通过绘制历史文本地籍,将过去与未来连接起来。2012年ACM计算系统人为因素年会论文集(CHI'12)。ACM,纽约,纽约,美国,463-472。DOI=


@edallme:很好的文档,很有趣

@道文:

我在你的帖子中了解到的是,你正在寻找一种算法来将所有的块放在地图上,而不是一个“小部件”来完成(那么也许我错了吧?)

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

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

其次,计算每个块的相对位置,将最小值和最大值存储在某处(参见第3部分),并参考具有最小/最大位置的对象

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


然后,你只需从一个角落“画”出来。

另请参见。海报的可能副本正在为GraphViz等工具寻找图形布局算法,但需要它来获取相对定位提示。他不需要一个GUI布局管理器,而是需要一个布局引擎,它可以处理类似图形的东西并生成图像。因此,我不认为上述任何一条评论是相关的(也就是说,这不是一篇重复的文章).你看过Gephi吗?这个问题是否可以简化为一个给定的节点只能通过一个给定的方向边缘与另一个节点建立一个连接-例如,只有一个房子可以位于另一个房子的东面?你发布PDF违反了版权条款:以其他方式复制,或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或收费。您引用的论文在相关工作部分也有几处引用。看来这是我们能得到的最好答案,所以我会给你赏金。