方案:将代码转换为图片

时间:2010-10-14 23:23:50

标签: scheme code-visualization

我有一个奇怪的计划问题。这是我帮助朋友的更重要的一部分。

我需要将Tree:Data转换为准确表示树的图像(对不起,我还没有要显示的示例图像)。

如果您对此有任何想法(和/或如果您有任何疑问),请与我们联系。以便我可以更新更多信息。

谢谢

3 个答案:

答案 0 :(得分:3)

绘制此类图表的最常用方法之一是使用graphviz。您只需扫描树并以非常简单的语法打印出连接。

答案 1 :(得分:1)

如果你真的,真的,真的必须直接在Scheme中做,那么让我指点你:

http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/Drawing-Graphics.html

Scheme确实有一个内置的图形库,虽然这可能只是MIT Scheme的特殊之处。在伯克利,我们的介绍类使用了SICP,我们确实有某种形式的图形,虽然这些图形是否是内置的,或者教师是否为我们添加了它们,但我不太清楚。

答案 2 :(得分:1)

这是我正在寻找的答案。我想我应该更清楚地表达我的问题。非常感谢你的帮助,@ EliBarzilay和@KevinHwang

(define (Tree:Data->Pict dt)
  (if (DataTree? dt)
      (frame
       (vl-append 10
                  (Tree:Data->Pict (DataTree-data dt))
                  (apply ht-append 10
                         (map Tree:Data->Pict (DataTree-children dt)))))
      (code #,dt)))