2009-05-20 128 views
14

这个问题可能有一个令人尴尬的简单答案,但是在Common Lisp中是否有正确的方式来格式化/绘制树?我已经尝试了几本书以及谷歌搜索,但问题似乎落在搜索条件的裂缝之间。Common Lisp中的绘图树

在此先感谢!

回答

26

你想要什么样的树画?

SDRAW将缺陷单元结构绘制到终端。类似的:Draw Cons Tree

如果您有McCLIM,CLIM或Lisp计算机,则可以调用CLIM函数CLIM:FORMAT-GRAPH-FROM-ROOT或CLIM:FORMAT-GRAPH-FROM-ROOTS。

如果您使用LispWorks,则有一个graph pane

如果你想绘制植物使用这一个:L-Lisp

plant drawing

+1

真棒,SDRAW正是我一直在寻找的:一种干净的方式来表示嵌套的缺陷单元格。再次感谢。 – wvoq 2009-05-23 04:27:09

+0

什么 - 真棒 - 答案。哇。你没有回答OP,而是整个谷歌搜索者。 – MaiaVictor 2012-06-24 19:32:26

4

如果您没有找到更好的解决方案,我会倾向于发出.dot文件,然后将其提供给Graphviz工具之一(如dot)。文件格式非常简单,这些工具可以生成各种格式,包括PNG,SVG,PostScript甚至图像映射(用于在网页上创建可点击的图形)。

如果您希望将这些图形用于您自己的使用(例如:调试)或者您正在服务器上生成这些图形,则此方法可能仅适用于您。在客户端应用程序中调用单独的工具可能会有可用性和/或许可问题。

这不是一个真正常见的lisp特定解决方案,但我过去曾使用过几种语言的这种方法。

+0

嗨,非常感谢您的回复。我希望直接打印到控制台,但对于大型树木,您的建议听起来更灵活。感谢你的宝贵时间! – wvoq 2009-05-21 02:04:48

1

我已经使用lisp2dot(awk脚本生成点命令)近年来在GP应用,但目前似乎并没有工作。每当我用有效的Lisp表达式提供它时,它都会返回带有无意义错误信息的奇怪Dot文件。不过,值得一提的是。