【问题标题】:Clojure, Quil: Creating/debugging generic functionsClojure,Quil:创建/调试泛型函数
【发布时间】:2015-02-24 21:50:45
【问题描述】:

我想创建一个使用 Quil 生成 jpg 图像的命令行应用程序。我计划编写几个通用的图像处理函数来混合和匹配(一些 fn 绘制形状和一些操作像素数组)。

我想做的一个简单示例是创建一个绘制圆的函数,然后创建一个将抖动算法应用于像素数组的第二个函数。

(defn draw-circle [x y] ...) ;; e.g. internally uses Quil draw functions.

(defn apply-dither [pixels] ...) ;; e.g. internally uses Quil color functions on the pixels array.

(defn draw []
(draw-circle 100 100)
(apply-dither (pixels))
...)

(defsketch sketch
:draw draw)

让我有点难过的是所有 Quil 函数似乎只在一个草图宏中运行。这意味着我自己的函数在内部依次使用 Quil 函数不能被直接调用(必须从由草图宏触发的绘图函数调用),使得从 repl 单独调试和运行它们变得更加困难/不可能。

如何创建和调试此类通用函数?我是卡住了代表我的草图调用功能还是有其他方法?

Quil 也有可能不是我项目的正确工具。我正在考虑直接使用java/处理类。

我的开发环境是 Emacs + Cider。

谢谢

【问题讨论】:

    标签: debugging clojure read-eval-print-loop quil


    【解决方案1】:

    我已经创建了一系列 quil 草图,可以在 https://github.com/rogerallen/qeom 的命令行中运行

    我在 emacs+cider 中开发和迭代,刚刚重新编译了 draw 函数以在草图窗口中实时查看结果更新。

    我使用原子(defonce dump-image-count (atom 1)) 来控制绘图函数何时保存图像:

    (defn draw []
       ...
       (when (> @dump-image-count 0)
          (save-frame "q007-dump-####.png")
          (swap! dump-image-count dec)))
    

    希望这会有所帮助。

    【讨论】:

    • 谢谢罗杰,试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多