6

我希望使用 MIT 方案以图形方式绘制函数。在方案手册中,有一个名为“图形”的部分——引用:

MIT Scheme has a simple two-dimensional line-graphics interface that is 
suitable for many graphics application.

如果您遇到这种情况,请通过粘贴与 MIT/scheme 一起使用的最小工作代码(KISS 原则)来帮助我,并绘制一些东西。

4

4 回答 4

6

看起来手册包含每个单独功能的文档,但每个功能的完整示例似乎都不存在于任何在线文档中。我能够找到工作代码的唯一方法是谷歌搜索实际的函数名称,并仔细检查每个结果以获取可能的代码示例。

无论如何,为了满足您的问题并为您提供该库如何工作的简单示例,这里是示例代码。

    (let ((device (make-graphics-device (car (enumerate-graphics-types))))
          (x-start 0)
          (y-start 0)
          (x-end 5)
          (y-end 5))
      (graphics-draw-line device x-start y-start x-end y-end)
      (graphics-close device))

如果您需要更多示例,请告诉我,但代码和文档应该足以让您继续前进。

于 2012-11-01T07:37:10.890 回答
6

我想补充一点,seisvelas (1/11/12) 给出的代码虽然正确,但在我的 64 位 Linux 系统上不起作用。
(根据 alinsoar 的观察进行编辑)这是因为窗口在 let 的范围内被关闭,所以它确实有效,但它发生得太快而无法观察。

试试这样:

(define device (make-graphics-device (car (enumerate-graphics-types))))
(graphics-draw-line device 0 0 5 5)
;; when you're good and ready
(graphics-close device)
于 2014-09-23T13:37:14.687 回答
3

Mac OSX 用户需要注意的一件事是您需要安装并启动 XQuartz,否则(enumerate-graphics-types)将始终为空。

于 2015-02-20T01:15:35.127 回答
1

我正在为 Windows 用户源代码开发绘图实用程序

它只是由 mit-scheme 中的“图形”提供的原语构建而成,但允许您绘制函数和矢量场。

于 2015-11-12T05:38:15.213 回答