gpt4 book ai didi

python - 画泥图

转载 作者:太空狗 更新时间:2023-10-30 02:22:54 25 4
gpt4 key购买 nike

我正在尝试绘制一些泥浆的 map 。我已经使用 python 和 graphviz 得到类似的东西:

http://img23.imageshack.us/img23/5222/arrasz.png

如您所见,我们有一些位置,并且我们将前往 N/S/W/E/Up/Down 前往其他位置。

是否可以使用 graphviz 将此 map 绘制为北向南,东向位于西向右?

我的意思是:

some        --- E --->   some
location <--- W --- location 2
.
/ \ |
| |

N S

| |
\ /
`
some location 3

或者也许有比 graphviz 更好的自动绘制工具?

最佳答案

人们问过 improving Graphviz layout之前,但我认为 Graphviz 在这里有点矫枉过正。

如果你有一个像这样的标准 MUD 布局:

simple MUD layout

...那么您对房间的位置有一些相当严格的限制。 Graphviz 不知道这些约束,所以它不会像像这样的简单算法那样做得好:

  1. 在网格上选择一个起始位置
  2. 使用例如一个depth-first traversal
  3. 每个新房间将一个单位移动到 N、S、E 或 W

如果您不想编写可视化代码,您可以(也许)将上述方法作为 Graphviz 的预处理步骤,将其用作为每个房间分配等级的方法。然后(希望)Graphviz 会产生正确的输出。

编辑:例如一些伪代码:

visit(initialRoom, 0, 0)

def visit(curRoom, curX, curY)
if curRoom == null return

print "in room " + curRoom + " at location " + curX + ", " + curY

visit(curRoom.northNeighbor, curX, curY-1)
visit(curRoom.southNeighbor, curX, curY+1)
visit(curRoom.westNeighbor, curX-1, curY)
visit(curRoom.eastNeighbor, curX+1, curY)

关于python - 画泥图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7739958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com