如何在p5.js上禁用残影?

3

当我绘制一个形状并移动或缩放时,背景变成灰色。这可以是任何形状,椭圆、线条、矩形等。这里是一个示例

我尝试更改描边权重和填充参数,但没有影响。

以下是复现问题所需的代码:

var bodys = [];

var zoom = 1.00;
var zMin = 0.05;
var zMax = 9.00;
var sensativity = 0.005;
let zoomMultiplier = 50000000;

function mouseWheel(event) {
  zoom += sensativity * -event.delta;
  zoom = constrain(zoom, zMin, zMax);
  return false;
}

function setup() {
  createCanvas(windowWidth, windowHeight);
  rectMode(CENTER);
  //declaring objects[], replacing these with normal ellipses works 
  //if you're trying to reproduce it.
  background(0);
}

function draw() {
  background(0, 20);
  translate(width/2, height/2);
  scale(zoom / zoomMultiplier);

  strokeWeight(500000)
  line(bodys[0].pos.x, bodys[0].pos.y, bodys[1].pos.x, bodys[1].pos.y)

  //...

  for (let bodys of bodys) {
    bodys.show()
  }
}

展示函数的样子如下:
show() {
  stroke(255);
  strokeWeight(2);
  fill(255, 100);
  ellipse(this.pos.x, this.pos.y, this.r * 2);
}

请发布代码;我宁愿不注册某个应用程序。 - apodidae
抱歉,我不知道如何使评论看起来更有组织。 - merb
确保draw()函数中的第一行是background()函数的调用。 - apodidae
抱歉,我不知道如何使评论看起来更有组织。因为你不应该将代码放在评论中。你应该编辑你的问题并将代码放在那里,以正确格式呈现。 - Sembei Norimaki
我已经添加了代码,虽然你只需要将一个形状移动到黑色背景上就可以复现它。 - merb
显示剩余12条评论
1个回答

2
background(0, 20);

这行代码使用了 background(gray, [a]) 重载*,其中 a 表示 "alpha",意思是背景的不透明度/透明度 "数字:相对于当前颜色范围的背景不透明度(默认为0-255)" (p5 参考资料)。

这里设置了一个大约92%透明度的黑色,因此在几个帧之后才会完全用黑色填充区域,透明度乘积趋近于0%。

将该行代码更改为

background(0);

摆脱残影效果。

谢谢,它起作用了。 - merb
谢谢,它起作用了。 - merb
谢谢,它起作用了。 - undefined
1
如果您发现这个答案对您有帮助,能否请您将其标记为答案? - apodidae
1
如果您觉得这个答案对您有帮助,能否请您将其标记为答案? - apodidae
1
如果您觉得这个回答对您有帮助的话,您可以将其标记为答案吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接