如何表示2D正交网格(Python)

时间:2011-01-24 04:08:36

标签: python grid

基本上我有一套“房间”(自定义课程)。所有房间都是相连的,每个房间都是根据一个或多个其他房间来定义的。我正在寻找一些系统来组织2D网格中的这些房间,并指定一个任意房间作为起源。

class room(exits={}) :
    #Other code in here, not relevant
    exits = {}


room_list = {}

room_list['room_1'] = room(exits={'north':'room_2'})
room_list['room_2'] = room(exits={'south':'room_1','west':'room_3'})
room_list['room_3'] = room(exits={'east':'room_2'})

所以我想用某种方式在网格中表示这些房间,而不仅仅是从房间到房间的链接。

1 个答案:

答案 0 :(得分:2)

虽然问题不是很清楚,但似乎需要像GraphViz [1]这样的东西。它基本上是一个自动化框图布局的程序,它与您的问题完全同构。有一个Python接口,PyGraphViz [2],可能对你有用。

如果要生成自己的布局引擎(与GraphViz相当),请确保查看GraphViz程序的neato组件使用的多维缩放算法[3]。

[1] http://www.graphviz.org/

[2] http://networkx.lanl.gov/pygraphviz/

[3] http://en.wikipedia.org/wiki/Multidimensional_scaling

如果您提供有关问题的更多详细信息,我可能会提供更有针对性的帮助。您想要获得的示例图(草图)将是好的。