直线

lineWidth = value

  1. 这个属性设置当前绘线的粗细。属性值必须为正数。默认值是1.0(可以为小数);
  2. 线宽是指给定路径的中心到两边的粗细;换句话说就是在路径的两边各绘制线宽的一半。 ```javascript var ctx = document.getElementById(‘canvas’).getContext(‘2d’);

ctx.lineWidth = 10; ctx.beginPath(); ctx.moveTo(5,5); ctx.lineTo(5,140); ctx.stroke();

  1. ![](https://cdn.nlark.com/yuque/0/2020/png/294117/1597934333250-321ac1c8-d854-41db-93f0-32d3563d684a.png#align=left&display=inline&height=152&margin=%5Bobject%20Object%5D&originHeight=152&originWidth=463&size=0&status=done&style=none&width=463)
  2. <a name="Ycpto"></a>
  3. ### lineCap = type
  4. <a name="tQJJz"></a>
  5. #### 作用
  6. 属性 lineCap 的值决定了线段端点显示的样子。
  7. <a name="T1maS"></a>
  8. #### type
  9. 1. butt(默认)
  10. 1. round
  11. 1. square
  12. ![](https://cdn.nlark.com/yuque/0/2020/png/294117/1597934599712-0c3f4767-157a-4cca-a31d-90e83ee3f417.png#align=left&display=inline&height=190&margin=%5Bobject%20Object%5D&originHeight=190&originWidth=190&size=0&status=done&style=none&width=190)
  13. ```javascript
  14. var ctx = document.getElementById('canvas').getContext('2d');
  15. var lineCap = ['butt','round','square'];
  16. // 创建路径
  17. ctx.strokeStyle = '#09f';
  18. ctx.beginPath();
  19. ctx.moveTo(10,10);
  20. ctx.lineTo(140,10);
  21. ctx.moveTo(10,140);
  22. ctx.lineTo(140,140);
  23. ctx.stroke();
  24. // 画线条
  25. ctx.strokeStyle = 'black';
  26. for (var i=0;i<lineCap.length;i++){
  27. ctx.lineWidth = 15;
  28. ctx.lineCap = lineCap[i];
  29. ctx.beginPath();
  30. ctx.moveTo(25+i*50,10);
  31. ctx.lineTo(25+i*50,140);
  32. ctx.stroke();
  33. }

lineJoin = type

作用

决定了图形中两线段连接处所显示的样子

type

  1. roun:边角处被磨圆了,圆的半径等于线宽
  2. bevel:
  3. miter(默认):线段会在连接处外侧延伸直至交于一点

线型 Line Style - 图1

  1. var ctx = document.getElementById('canvas').getContext('2d');
  2. var lineJoin = ['round', 'bevel', 'miter'];
  3. ctx.lineWidth = 10;
  4. for (var i = 0; i < lineJoin.length; i++) {
  5. ctx.lineJoin = lineJoin[i];
  6. ctx.beginPath();
  7. ctx.moveTo(-5, 5 + i * 40);
  8. ctx.lineTo(35, 45 + i * 40);
  9. ctx.lineTo(75, 5 + i * 40);
  10. ctx.lineTo(115, 45 + i * 40);
  11. ctx.lineTo(155, 5 + i * 40);
  12. ctx.stroke();
  13. }

虚线

使用:用 setLineDash 方法和 lineDashOffset 属性来制定虚线样式. setLineDash 方法接受一个数组,来指定线段与间隙的交替;lineDashOffset 属性设置起始偏移量.

setLineDash(segments)

segments: [4, 2, ?]

lineDashOffset = value

设置起始偏移量.

getLineDash()

返回一个包含当前虚线样式,长度为非负偶数的数组。

  1. var c = document.getElementById("canvas-2");
  2. var ctx = c.getContext("2d");
  3. var offset = 0;
  4. function draw() {
  5. ctx.clearRect(0,0, c.width, c.height);
  6. ctx.setLineDash([4, 2]);
  7. ctx.lineDashOffset = -offset;
  8. ctx.strokeRect(10,10, 100, 100);
  9. }
  10. function march() {
  11. offset++;
  12. if (offset > 16) {
  13. offset = 0;
  14. }
  15. draw();
  16. setTimeout(march, 20);