Canvas绘制虚线setLineDash方法说明

调用函数setLineDash
void ctx.setLineDash(segments);

segments一个Array数组。一组描述交替绘制线段和间距(坐标空间单位)长度的数字。 如果数组元素的数量是奇数, 数组的元素会被复制并重复。例如, [5, 15, 25] 会变成 [5, 15, 25, 5, 15, 25]。


function drawDashedLine(pattern) {
  ctx.beginPath();
  ctx.setLineDash(pattern);
  ctx.moveTo(0, y);
  ctx.lineTo(300, y);
  ctx.stroke();
  y += 20;}

const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');let y = 15;

drawDashedLine([]);
drawDashedLine([1, 1]);
drawDashedLine([10, 10]);
drawDashedLine([20, 5]);
drawDashedLine([15, 3, 3, 3]);
drawDashedLine([20, 3, 3, 3, 3, 3, 3, 3]);
drawDashedLine([12, 3, 3]);  // Equals [12, 3, 3, 12, 3, 3]

在这里插入图片描述
总结一下:
1 比如在第三条虚线中,pattern是[10,10]表示的是红色框A内的实线长度为10,黄色框B内的空白部分长度为10,
2 解释下如果数组元素的数量是奇数, 数组的元素会被复制并重复,例如, [5, 15, 25] 会变成 [5, 15, 25, 5, 15, 25]。因为虚线是周期性的,一般是实线和空白重复间隔出现,如果数量为奇数就会出现实线-空白-实线(第一次循环结束)-实线(第二次循环开始),这样就不合理,所以后面会被复制一份,变成实线-空白-实线-空白-实线-空白对应 [5, 15, 25, 5, 15, 25],这样就合理了

 转载于:https://blog.csdn.net/hotboyboy/article/details/88580039

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值