基本上我有一套“房间”(自定义类).所有房间都是相连的,每个房间都是根据一个或多个其他房间来定义的.我正在寻找一些系统来组织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'})
所以我想用某种方式在网格中表示这些房间,而不仅仅是从房间到房间的连接.
最佳答案 虽然问题不是很明确,但似乎需要像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
如果您提供有关问题的更多详细信息,我可能会提供更有针对性的帮助.您想要获得的示例图(草图)将是好的.