我正在尝试使用Canvas编写一个绘图应用程序。 它的工作方式是按下鼠标时的连接线。 当线条不透明时效果很好,但是当我更改alpha参数时,我遇到了问题。
我尝试了两个选项:
一个。鼠标第一次关闭时路径开始,鼠标再次启动时结束: 鼠标的每次移动都会调用stroke()函数。因为这条线是透明的,所以整个路径的开头都会变得不透明而末端不会,因为stroke()被多次调用,并且它一次又一次地成为整个路径。
湾路径开始和结束鼠标的每次移动: 该线在整个过程中是透明的,但每个路径和路径之间的匹配点不太透明(因为它们由两条线组成)。所以整条路都不稳固。
我得到一个好结果的唯一方法是当我再次调用鼠标时调用stroke()。然后它会很好地抚摸整个路径,但是在实际绘制它时我什么都看不见。
我该怎么办?
感谢
答案 0 :(得分:6)
我认为您最好的选择是在主画布上创建第二个覆盖画布(使用绝对定位)。
在鼠标拖动过程中,对于每个mousemove
事件,使用clearRect()清除叠加画布,然后绘制整个笔画。
获得mouseup
后,清除叠加层并将整个笔划绘制到主画布。
这是一个实例: