canvas-线的样式

线的样式在canvas中分为轮廓颜色、以及线型的样式

一、轮廓颜色

strokeStyle = color; // 设置描边轮廓的颜色

二、线型样式

1、线的宽度

lineWidth = number;

2、线帽的样式

ctx.lineCap = 'butt'; // 默认 正常
属性值:
round: 多出半圆
square: 多出方形

ctx.lineWidth = 20;
ctx.strokeStyle = 'red';
// 线帽: 线的两端的样式
// butt
ctx.beginPath();
ctx.lineCap = 'butt'; // 默认
ctx.moveTo(50, 100);
ctx.lineTo(50, 400);
ctx.stroke();

// round:会多出半圆
ctx.beginPath();
ctx.lineCap = 'round'; 
ctx.moveTo(150, 100);
ctx.lineTo(150, 400);
ctx.stroke();

// square: 会多出方形
ctx.beginPath();
ctx.lineCap = 'square'; 
ctx.moveTo(250, 100);
ctx.lineTo(250, 400);
ctx.stroke();


// 黄色的线
ctx.lineWidth = 2;
ctx.strokeStyle = 'yellow';
ctx.beginPath();

ctx.moveTo(0, 100);
ctx.lineTo(400, 100);

ctx.moveTo(0, 400);
ctx.lineTo(400, 400);
ctx.stroke();

线帽效果图:


image.png

利用多出一点点的特性我们可以看看在闭合路径时可以做点什么

栗子: 来个箭头

// 箭头

ctx.beginPath();
ctx.lineWidth = 6;
ctx.strokeStyle = 'blue';
线帽使用的是***
ctx.lineCap = 'square'; 
// 起始点
ctx.moveTo(100, 200);

ctx.lineTo(250, 200);
ctx.lineTo(250, 150);

// 角>
ctx.lineTo(350, 250);

ctx.lineTo(250, 350);
ctx.lineTo(250, 300);

// 结束点
ctx.lineTo(100, 300);

ctx.stroke();

当前效果:


image.png

问题来了: 箭头为什么没有闭合路径,如何闭合路径

// 第一种 添加最后一个结束点
ctx.lineTo(100, 200);
ctx.stroke();

// 第二种  闭合路径
ctx.closePath();
ctx.stroke();

此时我们使用的线帽为square:以上两种方法,闭合路径后完美连接在一起


image.png

如果是默认线帽butt呢?
1、在使用closePath()方式闭合是完美连接在一起的(我就不贴图了)
2、使用lineTo(),出现了问题:缺了一小块

image.png

看过效果之后,不想自己验证一下吗?

三、线的交点

ctx.lineJoin = 'miter '; // 默认 尖角
设置内角与外角距离
ctx.miterLimit = 10; 默认值(
当使用miter作为线条的连接时,所产生的内角与外角最大的默认值,一旦超过默认值,就会变成bevel
图片来源于: 菜鸟教程

内角与外角的距离

内角与外角距离超过默认值,变成bevel

image.png

ctx.lineJoin = 'bevel'; // 斜接

image.png

ctx.lineJoin = 'round'; // 圆角

image.png

canvas-简版画板

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 使用样式和颜色 色彩 colors 如果想要给图形上色,有两个重要的属性可以做到:fillStyle 和 stro...
    闲不住的李先森阅读 1,733评论 0 0
  • 啥是canvas? HTML5 标签用于绘制图像(通过脚本,通常是 JavaScript)。不过, 元素本身...
    kiaizi阅读 855评论 0 4
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    J_L_L阅读 1,695评论 0 4
  • 线条样式 绘制直线,第五章知识简单回顾 lineWidth 设置或返回当前的线条宽度,单位为像素 lineCap ...
    Zd_silent阅读 553评论 0 0

友情链接更多精彩内容