问题:我正在尝试使用 p5.js 创建一个简单的绘图应用程序。我想在光标位置显示一个代表画笔大小的圆圈,而不是标准光标图像。
可能的解决方案1:使用替换光标cursor()
p5 的原生函数。
为什么它不起作用: The p5光标功能 https://p5js.org/reference/#/p5/cursor仅采用以下参数:
箭头、十字、手、移动、文本或等待,或图像路径
因此,没有本地方法可以使用椭圆类替换光标。
可能的解决方案2:使用noCursor()
函数,然后在光标位置绘制圆圈,同时还绘制背景,如下所示:
var brushSize = 50;
function setup() {
createCanvas(1080,720);
noCursor();
}
function draw() {
background(100);
ellipse(mouseX,mouseY,brushSize);
}
为什么它不起作用:虽然此解决方案获得了所需的效果,即将光标替换为画笔大小的圆圈,但不断更新的背景使我无法在需要时使用画笔实际绘制到画布上。
有什么方法可以替换光标而不实际将椭圆绘制到画布上?有没有办法在 p5 中保存并立即重新加载画布?我在 API 文档中搜索找不到这样的方法。任何提示表示赞赏。
根据参考资料 https://p5js.org/reference/#/p5/cursor,您可以将 URL 传递到cursor()
设置图像的函数。
如果您想使用您绘制的图像,则必须提前绘制它们并将它们保存到文件中,然后使用这些文件。像这样的事情:
cursor('images/ellipse-15.png');
Where ellipse-15.png
是您提前生成的图像,以匹配brushSize
例如,是 15。
顺便说一句,P5.js 只是设置光标 CSS 属性。您可以阅读更多相关内容here https://developer.mozilla.org/en-US/docs/Web/CSS/cursor.
如果你想和noCursor()
自己接近并绘制椭圆,您可以将绘图绘制到缓冲区(createGraphics()
函数是你的朋友),然后在每一帧的顶部绘制椭圆。我仍然可能会使用十字光标,因为如果你自己绘制它会出现一些恼人的滞后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)