Html CSS画布路径的相交部分似乎有不正确的颜色。

Html CSS画布路径的相交部分似乎有不正确的颜色。,html,css,canvas,web,Html,Css,Canvas,Web,我正在尝试使用HTMLcanvas绘制路径。它由几个连接在一起的贝塞尔曲线组成。由于某种原因,我不能画出整个路径,然后再画。相反,我需要为每条贝塞尔曲线绘制笔划。我使用浅紫色作为笔划颜色,但在曲线的交叉处,我似乎得到了类似白色的东西,而不是我期望的浅紫色。像这样(很抱歉,我不能发布图像,因为我是新的堆栈溢出): 我使用的是不透明度为1的笔划样式,所以我相信这不是透明度问题。那么是什么导致了这个问题呢 仅供参考,我正在用这样的代码绘制每个贝塞尔曲线,其中a是画布的绘制上下文,this.bloom

我正在尝试使用
HTMLcanvas
绘制路径。它由几个连接在一起的贝塞尔曲线组成。由于某种原因,我不能画出整个路径,然后再画。相反,我需要为每条贝塞尔曲线绘制笔划。我使用浅紫色作为笔划颜色,但在曲线的交叉处,我似乎得到了类似白色的东西,而不是我期望的浅紫色。像这样(很抱歉,我不能发布图像,因为我是新的堆栈溢出):

我使用的是不透明度为1的
笔划样式
,所以我相信这不是透明度问题。那么是什么导致了这个问题呢

仅供参考,我正在用这样的代码绘制每个贝塞尔曲线,其中a是画布的绘制上下文,
this.bloom.c
类似于“
rgba(xxx,xxx,xxx,1)
”:

非常感谢

使用HTML5画布上下文本机支持的适当“混合模式”进行复合操作。在您的情况下,您可以在上使用“
源代码”

用于:

使用HTML5画布上下文本机支持的适当“混合模式”进行复合操作。在您的情况下,您可以在
上使用“
源代码”

用于:


+1.在我的头顶上,像素以RGBA加法方式相互复制。附言:把你的实验放在上面可以让你更快地做出反应。根据我的经验,Webkit和Chrome是画布HTML5实现中最可靠的工具,因此您在这里不会看到太大的差异。另请参见:为绘制笔划设置blendmode+1.在我的头顶上,像素以RGBA加法的方式相互复制。附言:把你的实验放在上面可以让你更快地做出反应。根据我的经验,Webkit和Chrome是画布HTML5实现中最可靠的工具,因此您在这里不会看到太大的差异。另请参见:为绘制笔划设置blendmode?哇!它就像一个符咒!我确实怀疑它与混合模式有关,但不知道如何在HTML画布中调整它。无论如何,我真的非常感谢你!另外,我还有一张我网站的全图截图,以防你好奇我要做什么~@SundayLee干杯!考虑添加另一行,例如“代码>结果更新< /代码>到您的帖子,并向我们展示结果…哇!它就像一个符咒!我确实怀疑它与混合模式有关,但不知道如何在HTML画布中调整它。无论如何,我真的非常感谢你!另外,我还有一张我网站的全图截图,以防你好奇我要做什么~@SundayLee干杯!考虑添加另一行,例如“代码>结果更新< /代码>到您的帖子,并向我们展示结果……
a.strokeStyle = this.bloom.c;
a.beginPath();
a.moveTo(e.x, e.y);
a.bezierCurveTo(c.x, c.y, b.x, b.y, d.x, d.y);
a.stroke(); 
var context = document.getElementById('myCanvas').getContext('2d');
context.globalCompositeOperation = 'source-over';
source-atop
source-in
source-out
source-over
destination-atop
destination-in
destination-out
destination-over
lighter
xor
copy