我想更改笔画的颜色,但我无法弄明白如何正确执行此操作我查了一个教程,它向我展示了 hu 代码中的东西。它改变了for循环中的 hu ,但它只是一种颜色..在我的情况下淡黄色
void setup(){
size(500,500);
colorMode(HSB);
}
float t = 0;
float tn = 0;
void draw(){
background(0);
translate(width / 2, height / 2);
noFill();
stroke(255);
strokeWeight(2);
float hu = 0;
beginShape();
//add vertices...
for(float theta = 0; theta <= 8 * PI; theta += 0.001){
float rad = r(theta,
1, //a
1, //b
sin(tn) * 0.1 + 5, //m
cos(tn) / 2, //n1
sin(t) * 0.5 + 0.5, //n2
cos(t) * 0.5 + 0.5 //n3
);
float x = rad * cos(theta) * 50;
float y = rad * sin(theta) * 50;
stroke(hu, 255, 255);
vertex(x,y);
hu += 1;
if(hu > 255){
hu = 0;
}
}
endShape();
t += 0.1;
tn += 0.1;
}
float r(float theta, float a, float b, float m, float n1, float n2, float n3){
return pow(pow(abs(cos(m * theta / 4.0) / a), n2) +
pow(abs(sin(m * theta / 4.0) / b), n3), -1.0 / n1) ;
}
答案 0 :(得分:1)
有关beginShape
功能的信息,请参阅the Processing reference:
P2D和P3D渲染器允许在每个顶点的基础上更改stroke()和fill(),但默认渲染器不会。
换句话说,您无法使用默认渲染器更改此类笔触颜色。您只需使用P2D
渲染器:
size(500, 500, P2D);
如果由于某种原因需要使用默认渲染器,那么您将不得不自己绘制线条而不是依赖vertex
函数。