问题标签 [quil]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
85 浏览

clojure - 在 quil 中使用 gsvideo 或 qtvideo 事件处理程序的方法是什么?

我正在努力将此代码移植到quil但没有成功:

使用 qtvideo

或 gsvideo

我已经做了很多与这个问题相关的搜索,但没有结果:(

我想问题是将(其他)小程序事件连接到 defsketch 定义但是......我可以实现那个简单的事情

谁能帮我?
提前谢谢!
胡安

已编辑:我的 clj 文件

0 投票
1 回答
129 浏览

clojure - 从 seq->stream 获取模数

下面的代码在整个屏幕上绘制正弦波,甚至更远。但是,我希望 x 永远不会超过(宽度)。此时,窗口应该被清除,并且应该再次绘制波浪,从 0 开始。我试过了

(set-state! :x (mod (seq->stream x) (width)))

但它没有用。我检查了一些示例,尝试了一些使用检查是否的代码(> x (width)),尝试将逻辑放入绘图函数中,但它们也不起作用。

我想在有限的显示器上绘制一个连续的波形(如心电图)。我将不胜感激任何帮助。

编辑

当我尝试将逻辑放入draw函数时,我(set-state! :x 0)在setup函数中编写,并将以下代码放入draw函数中:

但它不起作用,并且没有在任何 nrepl 缓冲区中引发任何错误。为了看看发生了什么,我在用户 repl 中尝试了这段代码:

即使我通过将 if 语句包装在内部来尝试此代码(into '()),该代码仍抱怨:“IllegalArgumentException 不知道如何从 java.lang.Long clojure.lang.RT.seqFrom 创建 ISeq”。与以下内容相同:

这个 if 语句有什么问题?clojure api 表示 if 测试测试条件,然后相应地评估并产生 then 或 else 分支。如果它产生了,它应该吐出那个整数,然后它会被添加到列表中,我认为它又应该由 take 函数列出。

0 投票
1 回答
696 浏览

macros - 另一个宏中的 Clojure 宏:如何从符号生成字符串

可能标题不是 100% 正确,但让我向您展示这个问题:

简而言之:有一个名为的宏defsketch(它是 lib 的一部分quil,但这没关系)。它的签名基本上是defsketch [applet-name & options],它创建了一些东西并将其绑定到一个名为applet-name. 出于某种原因,我想将其包装到另一个宏中——除其他外——接受一个applet-name参数,将该名称扩展为applet-name-viewport并将其传递给defsketch. 但是,我无法弄清楚如何正确地做到这一点(在上面的代码中使用宏扩展((pprint (macroexpand(nvp test-name 500 500))),我得到

(clojure.core/symbol (clojure.core/str (clojure.core/name 'my-namespace.core/test-name) "-viewport")-- 这部分看起来不错,但是在将它传递给内部宏之前应该以某种方式对其进行评估......

0 投票
1 回答
308 浏览

debugging - Clojure,Quil:创建/调试泛型函数

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

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

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

我如何去创建和调试这样的通用函数?我是代表我坚持使用草图调用功能还是有其他方法?

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

我的开发环境是 Emacs + Cider。

谢谢

0 投票
1 回答
288 浏览

clojure - quil功能模式下如何处理慢速绘图功能

我正在尝试构建此自行车站地图动画的制图 quil 可视化衍生物。我正在尝试在 quil 中使用新的默认功能模式,因为它看起来处理了大量处理鼠标事件和更新显示的工作。但是,我遇到了一个问题,即绘图的一部分(背景图)需要很长时间才能完全渲染,即使帧速率非常低。

按照这个可视化的建议,我正在通过下载它来安装 UnfoldingMaps 依赖项,并将其安装到 leiningen localrepo 中,如下所示:

我的 project.clj 文件如下所示:

而且,我的简单 core.clj 看起来像这样:

值得注意的是,只需很少的努力,这就能奏效……有点。即使将帧速率调回 1fps,背景图像也无法完全渲染:

部分渲染的背景

关于如何为这个特定元素提供完全渲染所需的时间有什么建议吗?最终,我希望在此之上以超过 1fps 的速度制作一些动画。我开始怀疑我最好的选择是抓取静态图像并将其扔到背景中。但是,这里还有什么可以推荐的吗?

0 投票
1 回答
200 浏览

html - 背景 Quil 画布应用程序前面的文本

我编写了一个 Clojurescript Quil网页应用程序,它由浮动的对象组成。这个“游戏”旨在成为普通 html 文本的背景。Quil 具有文本功能,但我没有找到任何我需要做的例子。理想情况下,我希望将网页文本呈现在游戏上方的图层上,使用类似Sablono的东西,而不必担心透明度问题或任何其他问题 - 游戏只是在后台!

如果不能简单地将 Quil 放在下面的图层上,那么我有理由确定我可以在 Quil 中做到这一点,但是会有很多细节需要整理:z-ordering,让文本保持颜色,让包含字符的矩形的背景透明等 - 我想避免许多问题。

给定这种设置,在画布层顶部有一个 html 文本层的最简单方法是什么?

以下是我到目前为止提出的内容,即在与动画相同的功能中绘制文本,但在动画之后。不完全是我正在寻找的东西,而是可能需要做的事情:

0 投票
0 回答
131 浏览

java - 在 Ubuntu 服务器上运行 ClojureScript/Quil

我在没有图形功能的 Ubuntu 服务器上开发,并从另一台计算机查看那里提供的网站。

编译到 ClojureScript 时,我得到了一个基本core.clj HeadlessException的绘制函数。

我想保持服务器原样。这可能吗?如果没有,有人知道我需要获取什么图形包才能使用 Java 吗?

谢谢!

更新错误:

0 投票
2 回答
1577 浏览

clojurescript - 试剂画布上的羽毛笔素描

我有一个 html 画布,想在上面显示一个 Quil 草图。大多数 Quil 示例用于defsketch在静态 html 页面上定义的画布上绘图。我想在这个 Reagent 组件中的画布上做它:

我发现做这类事情的最佳文档是here,但我不太清楚如何进入下一个级别并将其应用到上面的画布上。在上面的画布上画一条线的实际代码会很棒。

实际上,静态且始终运行defsketch就可以了-困难在于让它访问这种动态的画布。

如果它不能完成,那么很高兴知道,我将直接使用 Processing.js,假设这是下一个最好的主意。

0 投票
0 回答
103 浏览

clojure - 奎尔:甚至不要打开窗户

我正在尝试使用 quil 以程序方式生成图像。我认为这真的很棒,但我根本不想显示图像。我只是想将图像保存到文件中。

是否可以不实际打开窗口而直接保存文件?

0 投票
1 回答
124 浏览

clojure - 提高 Clojure Mandelbrot 生成器的效率

我想学习 Clojure,并从使用 quil 的 Mandelbrot 生成器开始,我得到了它的工作 - 但是生成图像需要一些时间并且是大量的资源消耗。有关如何使其更快的任何建议,或者如果您发现我的代码中任何非 Clojure 风格的部分。

核心.clj

复杂的.clj