javascript - Canvas - 创建部分实线和部分虚线

标签 javascript html canvas html5-canvas

我正在尝试在 HTML Canvas 中创建一条线,该线部分为实线,部分为虚线。这是我的代码

ctx.moveTo(10,10);
ctx.lineTo(70,70);
ctx.setLineDash([5,15]);
ctx.lineTo(100,100);
ctx.stroke();

然而,这会将整条线绘制为实线。我尝试在绘制最终线段之前添加 setLineDash,但这不起作用。我哪里出错了?

最佳答案

setLineDash 将应用于整个路径。

通过调用创建新路径

//yourfirstLine();
ctx.stroke();
ctx.beginPath()
//yourSecondLine();

var ctx =  c.getContext('2d')
ctx.beginPath()
ctx.moveTo(10,10);
ctx.lineTo(70,70);
ctx.stroke();

ctx.beginPath()
ctx.setLineDash([5,15]);
ctx.moveTo(80,80);
ctx.lineTo(100,100);
ctx.stroke();
<canvas id="c"></canvas>

或相应地计算dashArray: (这里对于相同的结果,它将是 ctx.setLineDash([85,15,30]))。

var ctx =  c.getContext('2d')
ctx.beginPath()
ctx.setLineDash([85,15,30]);
ctx.moveTo(10,10);
ctx.lineTo(70,70);
ctx.lineTo(100,100);
ctx.stroke();
<canvas id="c"></canvas>

就我个人而言,我会选择前者。

关于javascript - Canvas - 创建部分实线和部分虚线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36050482/

相关文章:

javascript - Ember js 和 Rails 4 CSRF

javascript - 如何将日期选择器的 HTML5 表单最小限制设置为 "Check-In Date (user input)"

javascript - 处理 Javascript 后获取 Canvas toDataUrl()

javascript - Fabric JS : Set Image positioning with coordinates (x, y)

javascript - FabricJS 从右到左的文本方向

javascript - 通过点击图像动态生成 map 区域坐标(jquery 或 javascript)

javascript - Express js API 中的端点 URI

javascript - jquery 在查找或过滤之前返回到元素

Html - div block 并清除 :both

javascript - 我怎样才能在 vuejs 或任何其他解决方案上解决这个数组问题?