HTML5画布 - 使用绘画应用程序的不透明度问题

时间:2011-07-09 11:49:04

标签: html5 canvas line paint stroke

我正在尝试使用Canvas编写一个绘图应用程序。 它的工作方式是按下鼠标时的连接线。 当线条不透明时效果很好,但是当我更改alpha参数时,我遇到了问题。

我尝试了两个选项:

一个。鼠标第一次关闭时路径开始,鼠标再次启动时结束: 鼠标的每次移动都会调用stroke()函数。因为这条线是透明的,所以整个路径的开头都会变得不透明而末端不会,因为stroke()被多次调用,并且它一次又一次地成为整个路径。

湾路径开始和结束鼠标的每次移动: 该线在整个过程中是透明的,但每个路径和路径之间的匹配点不太透明(因为它们由两条线组成)。所以整条路都不稳固。

我得到一个好结果的唯一方法是当我再次调用鼠标时调用stroke()。然后它会很好地抚摸整个路径,但是在实际绘制它时我什么都看不见。

我该怎么办?

感谢

1 个答案:

答案 0 :(得分:6)

我认为您最好的选择是在主画布上创建第二个覆盖画布(使用绝对定位)。

在鼠标拖动过程中,对于每个mousemove事件,使用clearRect()清除叠加画布,然后绘制整个笔画。

获得mouseup后,清除叠加层并将整个笔划绘制到主画布。

这是一个实例:

http://jsfiddle.net/rnNFB/1/