canvas:动态虚线圆

1.绘制动态虚线圆形
在这里插入图片描述

1.分析
画圆需要arc(),stroke() API
设置画线是虚线而不是实线

  • setLineDash([number]):设置虚线,参数为数字数组,数字是用来设置虚线每一个小段的长度。比如设置值[4,2]则虚线如【 — - — - — -…】循环出现。
  • lineDashOffset [=number]:设置虚线的偏移量。
    动起来。需要用到setTimeout(function, duration).
    每次在setTimeout中绘制时都是属于重新绘制,之前绘制的需要清除
  • clearRect(x, y, w, h):清除左上角在(x, y)处的宽为w,高为h的矩形内的所有已绘制的内容。

<canvas id="canvas5" height="800" width="800" style="border:1px solid #ccc"></canvas>
<script>
    const canvas = document.getElementById('canvas5');
    if(canvas.getContext){
        const van = canvas.getContext('2d');
        // 设置起始偏移量
        let offSet = 0;
        drawArcDash();

        function drawArcDash() {
            // 清除矩形内所有内容
            van.clearRect(0,0, canvas.width, canvas.height);
            // 开始一次绘制
            van.beginPath();
            // 设置虚线4-2-4-2排列
            van.setLineDash([4,2]);
            // 设置虚线偏移量
            van.lineDashOffset = -offSet;
            // 绘制圆形
            van.arc(300,300,80,0,Math.PI*2);
            // 执行绘制
            van.stroke();
            // 关闭此次绘制
            van.closePath();
            // 当偏移量大于16时重归0
            if(offSet > 16){
                offSet = 0;
            }
            offSet++;
            // 通过setTimeout递归调用绘制
            setTimeout(drawArcDash,20)
        }

    }else{
        alert('不支持')
    }
</script>

小结 新增API

  • setLineDash([number]):设置虚线,参数为数字数组,数字是用来设置虚线每一个小段的长度。比如设置值[4,2]则虚线如【
    — - — - — -…】循环出现。
  • lineDashOffset [=number]:设置虚线的偏移量。
  • clearRect(x, y, w, h):清除左上角在(x, y)处的宽为w,高为h的矩形内的所有已绘制的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值