我一直在编写一个程序,用不同颜色重绘大量(几百个)相同的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);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢
是的,您可以使用PShape的disableStyle()来禁用它的渲染样式并使用Processing(您的草图):
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);
}
}
Run Code Online (Sandbox Code Playgroud)
对于这样一个简单的形状你当然可以使用rect(),但我认为这是一个更复杂的东西.其他值得探索的事情是beginShape()和maybeGraphics ()
| 归档时间: |
|
| 查看次数: |
2238 次 |
| 最近记录: |