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

基本上我有一套“房间”(自定义类).所有房间都是相连的,每个房间都是根据一个或多个其他房间来定义的.我正在寻找一些系统来组织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

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

点赞