Canvas踩坑(1)实时透明线

在Canvas中,使用RGBA格式可以实现透明线的绘制。但在实时作图时,连续调用strokePath会导致原本透明的线变得不透明。通过尝试分段渲染、设置全局透明度或者保存/恢复canvas状态,可以解决这个问题,实现透明线的实时绘制,避免线头重叠产生的不透明效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Canvas画线算是最基础的操作,涉及的方法也比较简单

_cv = _canvas.getContext('2d');
_cv.lineWidth = 20
_cv.strokeStyle = 'red'
_cv.beginPath()
_cv.moveTo(point.x, point.y)
_cv.lineTo(new.x, new.y)
_cv.stroke()
复制代码

点很多的话,加个 for 循环也轻松搞定,如果画的是透明线,只需用 RGBA 格式即可,比如上图颜色为

_cv.strokeStyle = 'rgba(253, 150, 38, 0.41)'
复制代码

这个方法在已知画笔路径点的时候,是可以画出透明线,透明叠加起来效果也很好 但是如果是实时作图的,因为 lineTo() 只是画路径,并不会描线,所以需要不断调用 stroke() 来画出可见线条

但这么做的话,如果是透明的线,就会出现问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值