CanvasRenderingContext2D:lineCap 属性
Canvas 2D API 的CanvasRenderingContext2D.lineCap
属性确定用于绘制线条端点的形状。
注意:可以使用stroke()
、strokeRect()
和strokeText()
方法绘制线条。
值
示例
更改线条端帽的形状
此示例将直线的端帽设置为圆形。
HTML
html
<canvas id="canvas"></canvas>
JavaScript
js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineWidth = 15;
ctx.lineCap = "round";
ctx.lineTo(100, 100);
ctx.stroke();
结果
线条端帽的比较
在此示例中,绘制了三条线,每条线都具有不同的lineCap
属性值。添加了两个参考线,以查看三种线条之间的确切差异。这些线条中的每一条都精确地从这些参考线上开始和结束。
左侧的线条使用默认的"butt"
选项。它与参考线完全齐平。第二个线条设置为使用"round"
选项。这会在末端添加一个半径为线条宽度一半的半圆。右侧的线条使用"square"
选项。这会添加一个宽度与线条粗细宽度相等,高度为线条粗细一半的方框。
js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
// Draw guides
ctx.strokeStyle = "#09f";
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(140, 10);
ctx.moveTo(10, 140);
ctx.lineTo(140, 140);
ctx.stroke();
// Draw lines
ctx.strokeStyle = "black";
["butt", "round", "square"].forEach((lineCap, i) => {
ctx.lineWidth = 15;
ctx.lineCap = lineCap;
ctx.beginPath();
ctx.moveTo(25 + i * 50, 10);
ctx.lineTo(25 + i * 50, 140);
ctx.stroke();
});
规范
规范 |
---|
HTML 标准 # dom-context-2d-linecap-dev |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
WebKit/Blink 特定说明
- 在基于 WebKit 和 Blink 的浏览器中,除了此属性之外,还实现了非标准且已弃用的方法
ctx.setLineCap()
。