Как сделать объекты невидимыми при обработке

#processing

#обработка

Вопрос:

Я создаю прямоугольники на доске для рисования с помощью processing, но я хочу сделать их невидимыми. Как мне это сделать? Я был бы признателен за вашу помощь.

Амрита

Ответ №1:

Вы можете либо не рисовать их, либо использовать четвертый параметр (альфа / прозрачность) для функции заливки

не рисование:

 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);
  }
}
  

Ниже приведен фрагмент, который вы можете запустить:

 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>  

Предварительный просмотр

Ответ №2:

Вы могли бы поместить в функцию рисования переменную, чтобы контролировать, должна ли она отображать то, что вы хотите.

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

Ответ №3:

Добавьте noStroke(); и сделайте цвет таким же, как цвет фона?

Комментарии:

1. не делайте предположений (добавляя ‘?’ в конце ответа)