改变中风的颜色

时间:2016-06-27 14:17:30

标签: java colors processing

我想更改笔画的颜色,但我无法弄明白如何正确执行此操作我查了一个教程,它向我展示了 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) ;
}

1 个答案:

答案 0 :(得分:1)

有关beginShape功能的信息,请参阅the Processing reference

  

P2D和P3D渲染器允许在每个顶点的基础上更改stroke()和fill(),但默认渲染器不会。

换句话说,您无法使用默认渲染器更改此类笔触颜色。您只需使用P2D渲染器:

size(500, 500, P2D);

如果由于某种原因需要使用默认渲染器,那么您将不得不自己绘制线条而不是依赖vertex函数。