gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 09:23:47 25 4
gpt4 key购买 nike

我一直在编写一个程序,用不同的颜色重绘许多(数百个)相同的 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);
}

非常感谢任何帮助

最佳答案

是的,您可以使用 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);
}
}

对于这样一个简单的形状你当然可以使用rect() ,但我认为这是更复杂的东西的占位符。其他值得探索的是 beginShape()也许createGraphics()

关于processing - 有没有办法在不输入开始/结束的情况下更改 PShape 的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18904080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com