P5.js - 在实例模式下使用 erase() returns "p.erase is not a function"
P5.js - Using erase() in instance mode returns "p.erase is not a function"
我目前在实例模式下使用 p5.js,我正在使用以下由 p5 对象的绘制函数调用的代码块。 p5 对象的绘图函数将 p5 对象作为 p
传递给下面的绘图函数。
//Snippet 1
this.draw = function(p){
...
p.push();
p.noStroke();
tempColour = someFunc(); //returns color object
p.fill(tempColour);
p.ellipse(p.mouseX, p.mouseY, diameter);
p.pop();
...
}
以上代码按预期运行,无一例外。
现在,只要我使用 erase() 函数(见下文),控制台就会抛出异常 TypeError: p.erase is not a function. (In 'p.erase()', 'p.erase' is undefined)
。
//Snippet 2
this.draw = function(p){
...
p.push();
//newly inserted start
p.erase();
p.ellipse(p.mouseX, p.mouseY, diameter);
p.noErase();
//newly inserted end
p.noStroke();
tempColour = someFunc(); //returns color object
p.fill(tempColour);
p.ellipse(p.mouseX, p.mouseY, diameter);
p.pop();
...
}
我曾尝试在调用 push() 之前使用 erase() 函数,但不幸的是结果是一样的。我还检查过我不是不小心 reassigning/redeclaring 在 p5 对象上擦除。
我正在努力理解 erase() 与 fill() 或 stroke() 或任何其他 p5 函数有何不同,以及它如何导致异常。
我的目标:
我传递给椭圆函数的颜色可能包含小于 255 的 alpha 值。Snippet 1 中的代码目前在彼此之上绘制椭圆,最终导致完全不透明的椭圆(如果 mouseX 和 mouseY 保持不变)。
我试图用代码片段 2 实现的是椭圆函数绘制我传递给它的确切颜色,而不会增加不透明度的影响。
非常感谢任何帮助
问题已解决,我使用的是旧版本的 p5 库。
我目前在实例模式下使用 p5.js,我正在使用以下由 p5 对象的绘制函数调用的代码块。 p5 对象的绘图函数将 p5 对象作为 p
传递给下面的绘图函数。
//Snippet 1
this.draw = function(p){
...
p.push();
p.noStroke();
tempColour = someFunc(); //returns color object
p.fill(tempColour);
p.ellipse(p.mouseX, p.mouseY, diameter);
p.pop();
...
}
以上代码按预期运行,无一例外。
现在,只要我使用 erase() 函数(见下文),控制台就会抛出异常 TypeError: p.erase is not a function. (In 'p.erase()', 'p.erase' is undefined)
。
//Snippet 2
this.draw = function(p){
...
p.push();
//newly inserted start
p.erase();
p.ellipse(p.mouseX, p.mouseY, diameter);
p.noErase();
//newly inserted end
p.noStroke();
tempColour = someFunc(); //returns color object
p.fill(tempColour);
p.ellipse(p.mouseX, p.mouseY, diameter);
p.pop();
...
}
我曾尝试在调用 push() 之前使用 erase() 函数,但不幸的是结果是一样的。我还检查过我不是不小心 reassigning/redeclaring 在 p5 对象上擦除。 我正在努力理解 erase() 与 fill() 或 stroke() 或任何其他 p5 函数有何不同,以及它如何导致异常。
我的目标: 我传递给椭圆函数的颜色可能包含小于 255 的 alpha 值。Snippet 1 中的代码目前在彼此之上绘制椭圆,最终导致完全不透明的椭圆(如果 mouseX 和 mouseY 保持不变)。 我试图用代码片段 2 实现的是椭圆函数绘制我传递给它的确切颜色,而不会增加不透明度的影响。
非常感谢任何帮助
问题已解决,我使用的是旧版本的 p5 库。