Processing 有没有办法在不输入开始/结束的情况下更改PShape的颜色?

Processing 有没有办法在不输入开始/结束的情况下更改PShape的颜色?,processing,Processing,我一直在写一个程序,用不同的颜色重画很多(几百)相同的形状。但是,我还没有找到一种方法,可以在不重新创建PShape的情况下以不同的颜色重新绘制PShape,也就是说,通过开始/结束形状重做所有顶点,然后简单地更改填充,然后将其指定给新的PShape变量。我尝试过像tint()、fill()、setFill()这样的方法,它们似乎都需要在begin/end shape中调用 有没有一种方法可以在不完全重新定义形状并将其分配给新变量的情况下,以不同的颜色重新绘制形状? 非常感谢您的帮助 (以下是我

我一直在写一个程序,用不同的颜色重画很多(几百)相同的形状。但是,我还没有找到一种方法,可以在不重新创建PShape的情况下以不同的颜色重新绘制PShape,也就是说,通过开始/结束形状重做所有顶点,然后简单地更改填充,然后将其指定给新的PShape变量。我尝试过像tint()、fill()、setFill()这样的方法,它们似乎都需要在begin/end shape中调用

有没有一种方法可以在不完全重新定义形状并将其分配给新变量的情况下,以不同的颜色重新绘制形状?

非常感谢您的帮助

(以下是我尝试过的不同事物的排序)

非常感谢任何帮助

是的,您可以使用PShape禁用其渲染样式并使用Processing(您的草图):

PShape p;
无效设置()
{
尺寸(600,600,P2D);
p=createShape();
p、 beginShape();
p、 顶点(0,0);
p、 顶点(20,0);
p、 顶点(20,20);
p、 顶点(0,20);
p、 端形(闭合);
//禁用PShape的默认样式并使用Processing的
p、 禁用样式();
}
作废提款()
{
背景(255);
对于(int i=0;i<30;i++){
填充(i/30.0*255、100、30);
形状(p,i*20300);
}
}

对于这样一个简单的形状,你当然可以使用,但我认为这是一个更复杂的地方持有人。其他需要探索的东西可能是

不,
开始
结束
进入和离开上下文,如果您不在上下文中,您无法更改上下文中的任何内容。非常感谢!(是的,它是一个占位符)
   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);
}
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);
  //disable the PShape's default styles and use Processing's 
  p.disableStyle();
}

void draw()
{
  background(255);
  for(int i = 0 ; i < 30 ; i++){
      fill(i/30.0*255, 100, 30);
      shape(p, i * 20,300);
  }
}