Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Processing 在处理过程中留下淡入淡出的痕迹_Processing - Fatal编程技术网

Processing 在处理过程中留下淡入淡出的痕迹

Processing 在处理过程中留下淡入淡出的痕迹,processing,Processing,我有一个在屏幕上移动的圆圈,我需要的是能够让这个圆圈在它后面留下一条线,大约一秒钟后就会消失。我正在使用处理。不能说它有效率,但我想有一种方法可以做到这一点,那就是在ArrayList中保留旧位置?然后,您可以在每个点之间绘制线,只要在每个帧中按当前位置并删除最近的帧。希望有帮助 PVector circlePosition; ArrayList<PVector> circleTrail; int trailSize = 10; void setup() { size(500,

我有一个在屏幕上移动的圆圈,我需要的是能够让这个圆圈在它后面留下一条线,大约一秒钟后就会消失。我正在使用处理。

不能说它有效率,但我想有一种方法可以做到这一点,那就是在ArrayList中保留旧位置?然后,您可以在每个点之间绘制线,只要在每个帧中按当前位置并删除最近的帧。希望有帮助

PVector circlePosition;
ArrayList<PVector> circleTrail;
int trailSize = 10;

void setup() {
  size(500, 500);
  circlePosition = new PVector(width*0.5, width*0.5);
  circleTrail = new ArrayList<PVector>();
}

void draw() {
  background(255);
  int trailLength;

  circlePosition = new PVector(mouseX, mouseY);
  circleTrail.add(circlePosition);

  trailLength = circleTrail.size() - 2;
  println(trailLength);

  for (int i = 0; i < trailLength; i++) {
    PVector currentTrail = circleTrail.get(i);
    PVector previousTrail = circleTrail.get(i + 1);

    stroke(0, 255*i/trailLength);
    line(
      currentTrail.x, currentTrail.y,
      previousTrail.x, previousTrail.y
    );
  }

  ellipse(circlePosition.x, circlePosition.y, 10, 10);

  if (trailLength >= trailSize) {
    circleTrail.remove(0);
  }

}
PVector循环位置;
阵列式环形轨道;
int-trailSize=10;
无效设置(){
大小(500500);
圆形位置=新的PVector(宽度*0.5,宽度*0.5);
circleTrail=新的ArrayList();
}
作废提款(){
背景(255);
国际贸易长度;
circlePosition=新的PVector(mouseX、mouseY);
circleTrail.add(circlePosition);
trailLength=circleTrail.size()-2;
println(trailLength);
对于(int i=0;i=拖行大小){
圆环轨道。移除(0);
}
}
我也不能说我的方法有多有效,但我的方法是每次在整个草图上绘制一个矩形,同时将值设置为较低的值(如25左右)。这会导致上一个draw()循环中的对象看起来“褪色”。例如:

int i = 0;

void setup(){
  size(500,500);
  smooth();
  noStroke();
  background(255);
}

void draw(){
  fill(255,25);
  rect(0,0,width,height);
  fill(0);
  ellipse(width/2 + i,height/2 + i,50,50);
  delay(100);
  i+=10;
}