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