2010-10-14 103 views
1

我有一个奇怪的计划问题。这是我帮助朋友的更大的一部分。计划:将代码转换为图片

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

请让我知道如果你有任何想法(和/或如果你有问题),所以我可以更新更多的信息。

谢谢

回答

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))) 
3

其中最常见的方式来绘制图表等使用graphviz。您只需扫描树并以非常简单的语法打印出连接。

+0

我需要进行这项程序,使得它的工作原理正确的开箱即用,没有任何依赖性。我之前和graphviz一起工作过,并且知道这将是一条路。不幸的是,我不能。任何想法如何在计划内直接做到这一点? – inspectorG4dget 2010-10-15 00:30:22

+0

我会尝试*真的*很难以某种方式将它与您的应用程序混在一起...也许作为一个库,或者甚至在某处放置一些cgi脚本以用作应用程序的服务。我试图做类似的事情,但它本身非常毛茸茸,并且是一个巨大的项目,你仍然会做得比他们做的要少得多。如果你只有非常简单的结构,你可能会逃脱 - 就像一些大多数已知形状的树木,但即使这样也可能是具有挑战性的。 – 2010-10-15 02:50:16

+0

我确实努力把它弄进去。我提出了所有可能的论点,但我得到了这样的回答:“你说得对,但按我说的去做,反正”。我所要处理的只是“简单”的树木和矩形。我不想在这里遇到任何复杂的事情。我知道这是一种痛苦,但是如果你有/什么/,请让我知道 – inspectorG4dget 2010-10-15 03:53:38

1

如果你真的,真的,真的要计划内直接做了,然后让我引导您的位置:

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

方案确实有一个内置的图形库,尽管这可能是奇特的只有麻省理工学院计划。在伯克利,我们的介绍班使用SICP,并且我们确实有图形,不管这些图形是否内置或者教师是否为我们添加了图形,我都不太清楚。