我正在使用一组点来绘制一条绿色的线。
为了使边缘光滑。 问题在于,如果我将其全部绘制为一条线,则无法使其半透明。 因为如果我使用渐变,它只会应用于第一条单独绘制的线,而不是整个轨迹。 示例 所以我的问题是。我如何绘制具有平滑边缘且可以淡出的线条?
for(var i = this.trail.length - 1; i > -1 + 1; i--)
{
var time = this.trail[i][0];
var pos = this.trail[i][1];
var pos2 = this.trail[i - 1][1];
var difference = currentTime - time;
var alpha = ((falloffTime - difference) / 255.0) / 255.0;
if(alpha < 0)
alpha = 0;
pos = camera.WorldToScreen(pos.x, pos.y);
pos2 = camera.WorldToScreen(pos2.x, pos2.y);
con.moveTo(pos.x, pos.y);
con.lineTo(pos2.x, pos2.y);
con.lineWidth = 3;
con.strokeStyle = "rgba(128, 190, 3, " + alpha + ")";
con.stroke();
}
目前我正在循环中绘制它,以便可以设置透明度。
但是,绘制的线看起来有些锯齿状。
我知道如果将其全部绘制为单一线条,则可以使用
con.lineJoin="round";
为了使边缘光滑。 问题在于,如果我将其全部绘制为一条线,则无法使其半透明。 因为如果我使用渐变,它只会应用于第一条单独绘制的线,而不是整个轨迹。 示例 所以我的问题是。我如何绘制具有平滑边缘且可以淡出的线条?