首页 > 解决方案 > 使用背景不透明度值的 Fading CurveVertex() 轨迹不起作用

问题描述

使用 FX2D。

嗨,我目前正在使用 curveVertex() 函数在每一帧上画一条线。每条线都自愿留在草图上,每一步不重置背景,留下痕迹效果。

但我想让这些痕迹随着时间的推移逐渐消失。我尝试通过给它一个小的不透明度值来重置 draw() 函数中的背景,但它每次都会一次清除所有轨迹。

现在我只能拥有所有路径或没有路径。

  //background(0, 0, 0, 10); // Reset background every time
  stroke(255, 255, 255, 10); // Draw Line between all nodes
  curveVertex(nodes.get(fixId(i)).position.x, nodes.get(fixId(i)).position.y);

带小径

标签: javaprocessingrendering

解决方案


background()不只是设置背景颜色,它清除整个窗口。它不打算backgroundbeginShape()/endShape()序列中使用。

做什么可以通过在整个窗口上画一个rect()with来实现blendMode(DIFFERENCE),在框架的开头。例如:

void draw() {

    // "fade" the entire view 
    blendMode(DIFFERENCE);
    fill(1, 1, 1, 255);
    rect(0, 0, width, height);

    blendMode(ADD);

    // draw shape
    // [...]

}

另请参阅处理渲染形状的答案。


推荐阅读