我希望使用 MIT 方案以图形方式绘制函数。在方案手册中,有一个名为“图形”的部分——引用:
MIT Scheme has a simple two-dimensional line-graphics interface that is
suitable for many graphics application.
如果您遇到这种情况,请通过粘贴与 MIT/scheme 一起使用的最小工作代码(KISS 原则)来帮助我,并绘制一些东西。
我希望使用 MIT 方案以图形方式绘制函数。在方案手册中,有一个名为“图形”的部分——引用:
MIT Scheme has a simple two-dimensional line-graphics interface that is
suitable for many graphics application.
如果您遇到这种情况,请通过粘贴与 MIT/scheme 一起使用的最小工作代码(KISS 原则)来帮助我,并绘制一些东西。
看起来本手册包含每个单独功能的文档,但每个功能的完整示例似乎都不存在于任何在线文档中。我能够找到工作代码的唯一方法是谷歌搜索实际的函数名称,并仔细检查每个结果以获取可能的代码示例。
无论如何,为了满足您的问题并为您提供该库如何工作的简单示例,这里是示例代码。
(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))
如果您需要更多示例,请告诉我,但代码和文档应该足以让您继续前进。
我想补充一点,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)
Mac OSX 用户需要注意的一件事是您需要安装并启动 XQuartz,否则(enumerate-graphics-types)
将始终为空。
我正在为 Windows 用户源代码开发绘图实用程序
它只是由 mit-scheme 中的“图形”提供的原语构建而成,但允许您绘制函数和矢量场。