Scheme 方案:将代码转换为图片

Scheme 方案:将代码转换为图片,scheme,code-visualization,Scheme,Code Visualization,我有个奇怪的问题。这是我正在帮助一个朋友的更大的事情的一部分 我需要将树:数据转换为准确表示树的图像(很抱歉,我还没有要显示的示例图像) 请让我知道你对此是否有任何想法(和/或如果你有问题),以便我可以更新更多信息 谢谢绘制此类图表最常用的方法之一是使用。您只需扫描树并以非常简单的语法打印出连接。绘制此类图表的最常用方法之一是使用。您只需扫描树并以非常简单的语法打印连接。如果您真的、真的、真的必须在Scheme中直接执行此操作,请允许我在此处指导您: Scheme确实有一个内置的图形库,尽管这

我有个奇怪的问题。这是我正在帮助一个朋友的更大的事情的一部分

我需要将
树:数据
转换为准确表示树的图像(很抱歉,我还没有要显示的示例图像)

请让我知道你对此是否有任何想法(和/或如果你有问题),以便我可以更新更多信息


谢谢

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

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

如果您真的、真的、真的必须在Scheme中直接执行此操作,请允许我在此处指导您:


Scheme确实有一个内置的图形库,尽管这可能只是MIT Scheme特有的。在伯克利,我们的入门课使用了SICP,我们确实有一些图形,尽管这些图形是内置的还是导师为我们添加的,我不太清楚

如果您真的,真的,真的必须在Scheme中直接执行,那么让我在这里指导您:


Scheme确实有一个内置的图形库,尽管这可能只是MIT Scheme特有的。在伯克利,我们的入门课使用了SICP,我们确实有一些图形,尽管这些图形是内置的还是导师为我们添加的,我不太清楚

这就是我一直在寻找的答案。我想我应该把我的问题说清楚一点。不管怎样,非常感谢你的帮助,@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)))

这就是我一直在寻找的答案。我想我应该把我的问题说清楚一点。不管怎样,非常感谢你的帮助,@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)))

我需要使这个程序,使其工作的权利,开箱即用,没有任何依赖关系。我以前和graphviz一起工作过,我知道这将是一条出路。不幸的是,我不能。有什么办法可以让我在计划中直接做到这一点吗?我会尽力把它和你的申请结合起来。。。可能作为一个库,或者甚至将一些cgi脚本放在某个地方作为应用程序的服务。我试着做一些类似的事情,但这一切都非常棘手,而且本身就是一个巨大的项目,你所做的仍然比他们所做的要少得多。如果你只有非常简单的结构,比如一些已知形状的树,你可能会逃之夭夭,但即使这样也很有挑战性。我尽可能地争辩,但我得到的回答是:“你是对的,但无论如何,还是照我说的去做。”。我要处理的只是“简单”的树和矩形。我不想在这里得到任何超级复杂的东西。我知道这很痛苦,但如果你有什么事,请告诉我+1。你提出了一个建议,如果不是这样的话,我会同意的,但不幸的是,KevinHwang的是我可以同意的。我不是来参加比赛的,所以请随意选择。你所说的答案是一个到图形绘图库的链接——这是你最不需要担心的问题。我需要制作这个程序,使它能够开箱即用,没有任何依赖性。我以前和graphviz一起工作过,我知道这将是一条出路。不幸的是,我不能。有什么办法可以让我在计划中直接做到这一点吗?我会尽力把它和你的申请结合起来。。。可能作为一个库,或者甚至将一些cgi脚本放在某个地方作为应用程序的服务。我试着做一些类似的事情,但这一切都非常棘手,而且本身就是一个巨大的项目,你所做的仍然比他们所做的要少得多。如果你只有非常简单的结构,比如一些已知形状的树,你可能会逃之夭夭,但即使这样也很有挑战性。我尽可能地争辩,但我得到的回答是:“你是对的,但无论如何,还是照我说的去做。”。我要处理的只是“简单”的树和矩形。我不想在这里得到任何超级复杂的东西。我知道这很痛苦,但如果你有什么事,请告诉我+1。你提出了一个建议,如果不是这样的话,我会同意的,但不幸的是,KevinHwang的是我可以同意的。我不是来参加比赛的,所以请随意选择。您所说的答案是指向图形绘图库的链接,而这是您最不需要解决的问题。