Как я могу убедиться, что центр круга остается статичным при обработке? - PullRequest
0 голосов
/ 08 сентября 2018

Я работаю над этим проектом, используя библиотеку Unfolding-Maps и Processing Library.Я наткнулся на код, который рисует круг, диаметр которого увеличивается со временем и, наконец, исчезает.Но проблема, с которой я сталкиваюсь, заключается в том, что центр круга перемещается с моими координатами 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;
}

Любое предложение будет оценено.

1 Ответ

0 голосов
/ 08 сентября 2018

Когда вы щелкнете по экрану, сохраните мышь 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;
}
...