P5.js 获取当前 fill/stroke 颜色?

P5.js Get current fill/stroke color?

我正在为 p5.js 开发一个插件库,我需要在某些功能中设置几种 fill/stroke 颜色。

有没有办法获取当前的 fill/stroke 值,这样我就可以确保当用户调用上述函数时,他不必担心我设置的颜色?

这类东西:

function foo(){
    var tempColor = getFill();   //Hypothetical get color function 
    // ...
    fill(color1);                //Some color I use
    // ...
    fill(color2);                //Another color I use
    // ...
    fill(tempColor);             //Reset fill color to user set
}

编辑:虽然没有记录,但我在 p5.js 中找到了一些对 curFillColor 变量的引用,但我没有找到使用它的方法。

P5.js 是开源的,因此您可以在调用 fill() 函数时确切地看到它们的作用 here:

p5.prototype.fill = function() {
  this._renderer._setProperty('_fillSet', true);
  this._renderer._setProperty('_doFill', true);
  this._renderer.fill.apply(this._renderer, arguments);
  return this;
};

这会将您带到特定于渲染器的 fill 变量。您可以找到它,但基本上:没有一种简单的方法来获取当前的填充颜色。

您可能想要做的是在您的库中使用缓冲区。不要在主草图上调用 fill();在缓冲区上调用 fill()。将所有绘图绘制到缓冲区,然后将该缓冲区绘制到草图。

嘿,我不知道是不是有点晚了。我也在尝试为 p5 创建一个插件库。所以我正在做的是在我使用填充之前调用 push,然后调用 pop。以便我确保恢复填充。

参考 https://p5js.org/reference/#/p5/push