我一直在编写一个程序,它以不同的颜色重绘许多(数百个)相同的 PShape。但是,我还没有找到一种在不实际重新创建 PShape 的情况下以不同颜色重新绘制 PShape 的方法,即通过开始/结束形状重做所有顶点并简单地更改填充,然后将其分配给新的 PShape 变量。我尝试过 tint()、fill()、setFill() 之类的方法,它们似乎都需要以开始/结束形状调用。
有没有办法在不完全重新定义形状并将其分配给新变量的情况下以不同的颜色重绘 PShape?
非常感谢任何帮助。
(这是我尝试过的不同事物的一种整理)
PShape p;
void setup()
{
size(600,600,P2D);
p = createShape();
p.beginShape();
p.vertex(0, 0);
p.vertex(20, 0);
p.vertex(20, 20);
p.vertex(0, 20);
p.endShape(CLOSE);
}
void draw()
{
p.tint(200,100,30);
p.fill(200,100,30);
p.setFill(0,0);
shape(p,100,100);
}
非常感谢任何帮助