如何在Processing中使对象不可见

时间:2011-04-12 19:35:51

标签: processing

我正在使用处理在草图板上制作矩形,但我想让它们不可见。我怎么做?我很感激你的帮助。

甘露

3 个答案:

答案 0 :(得分:3)

您可以不绘制,使用fill函数的第四个(alpha / 透明度)参数

不画画:

int numVisible = 0;
for(int i = 0 ; i  < 20 ;  i++) {
  boolean visible = random(1) > .5;
  if(visible) {
    rect(random(100),random(100),random(10),random(10));
    numVisible++;
  }
}
println(numVisible+" boxes are visible");

绘制透明(只有笔画可见):

for(int i = 0 ; i  < 20 ;  i++) {
  boolean visible = random(1) > .5;
  fill(255,255,255,visible ? 255 : 0);
  rect(random(100),random(100),random(10),random(10));
}

如果有帮助,这里有更长的版本:

void setup(){
  size(400,400,P2D);
  smooth();
  noStroke();
  background(255);
  for(int i = 0; i < 200 ; i++){
    Rect r = new Rect(random(width),random(height),random(10,20),random(10,20),color(random(255),random(255),random(255),random(1) > .5 ? 255 : 64));
    r.draw();
  }
}
class Rect{
  color c;
  float w,h,x,y;
  Rect(float x,float y,float w,float h,color c){
    this.c = c;
    this.w = w;
    this.h = h;
    this.x = x;
    this.y = y;
  }
  void draw(){
    fill(c);
    rect(x,y,w,h);
  }
}

Bellow是一个你可以运行的片段:

function setup(){
  createCanvas(400,400);
  smooth();
  noStroke();
  background(255);
  for(var i = 0; i < 200 ; i++){
    var r = new Rect(random(width),random(height),random(10,20),random(10,20),color(random(255),random(255),random(255),random(1) > .5 ? 255 : 64));
    r.draw();
  }
}
function Rect(x,y,w,h,c){
    this.c = c;
    this.w = w;
    this.h = h;
    this.x = x;
    this.y = y;
  
  this.draw = function(){
    fill(c);
    rect(x,y,w,h);
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.4.4/p5.min.js"></script>

preview

答案 1 :(得分:1)

你可以在draw函数中输入一个var来控制它是否必须显示你想要的内容。

void draw()
{
  if (showThis)
  {
    image(image);
  }
}

答案 2 :(得分:0)

添加noStroke();并使颜色与背景颜色相同?