0

我正在使用 Unfolding-Maps 库和处理库来处理这个项目。我遇到了一个代码,它绘制了一个直径随时间增加并最终消失的圆。但我面临的问题是圆的中心随着我的鼠标的 x 和 y 坐标移动但我希望它是静态的而不是根据我的鼠标移动移动,即我点击鼠标的地方我想要圆的中心成为那个坐标和静止的。

我的代码如下:

boolean bCircleShow=false;
float opacity;
int diameter=0;
//
void setup () {
  size (400, 300);
  background (255);
  smooth ();
  opacity=255;
}
//
void draw() {
  background (122);
  //stroke (0, 255, 0);
  noStroke();
  fill(255);
  if (bCircleShow) {
    fill(255, 2, 2, opacity);
    ellipse (mouseX, mouseY, diameter, diameter );
    diameter ++;
    opacity--;
    if (opacity<=0) {
      bCircleShow=false; // end
      opacity=255;
      diameter=0;
    }
  }
}
//
void mouseClicked() {
  bCircleShow=true;
}

任何建议将不胜感激。

4

1 回答 1

1

当您单击屏幕时,存储该单击的鼠标 X 和鼠标 Y,然后在该鼠标 x 和鼠标 y 处绘制圆圈。不要使用 mouseX 和 mouseY,因为它们是处理中的预定义变量。

示例代码。

boolean bCircleShow=false;
int mx;
int my;
float opacity;
int diameter=0;
//
void setup () {
  size (400, 300);
  background (255);
  smooth ();
  opacity=255;
}
//
void draw() {
  background (122);
  //stroke (0, 255, 0);
  noStroke();
  fill(255);
  if (bCircleShow) {
    fill(255, 2, 2, opacity);
    ellipse (mx, my, diameter, diameter );
    diameter ++;
    opacity--;
    if (opacity<=0) {
      bCircleShow=false; // end
      opacity=255;
      diameter=0;
    }
  }
}
//
void mouseClicked() {
  bCircleShow=true;
  mx=mouseX;
  my=mouseY;
}
于 2018-09-08T18:04:33.860 回答