为什么我的两个矩形出现了?

时间:2016-06-23 21:50:54

标签: processing rect

 
void setup(){
  size(100,100);
  fill(255,255,255);
  rect(0,0,50,50);
  rect(50,50,100,0);
  rect(50,50,0,100);
  rect(50,50,100,100);
}

void draw(){

}

void mousePressed(){
  if ((mouseX <= 50) && (mouseY <= 50)){
    fill(random(0,255),random(0,255),random(0,255));
    rect(0,0,50,50);
  }
  if ((mouseX >= 50) && (mouseY >= 50)){
    fill(random(0,255),random(0,255),random(0,255));
    rect(50,50,100,100);
  }
  if ((mouseX >= 50) && (mouseY <= 50)){
    fill(random(0,255), random(0,255), random(0,255));
    rect(50,50,100,0);
  }
  if ((mouseX <= 50) && (mouseY >= 50)){
    fill (random(0,255),random(0,255),random(0,255));
    rect(50,50,0,100);
  }
}

您好,我是最近向Processing 3推出的新程序员。当我运行此代码时,缺少2个方块(右上角和左下角)。我已经审核了代码,但我没有看到任何错误。如果有人知道代码中有什么问题,请告诉我。

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

 

让我们看看rect()功能the reference

  

默认情况下,前两个参数设置左上角的位置,第三个设置宽度,第四个设置高度。

现在让我们看看您遇到问题的两行代码:

rect(50,50,100,0);

这个矩形的0像素高,所以你不会看到它。类似地:

rect(50,50,0,100);

此矩形的宽度为0像素,因此您无法看到它。

我猜你认为最后两个参数是右下角,但默认情况并非如此。当然,您可以使用rectMode()函数更改此内容:

rectMode(CORNERS);