作用:
根据控制点和半径绘制圆弧路径,
实现机制:
使用当前的描点(前一个moveTo或lineTo等函数的止点)。根据当前描点与给定的控制点1连接的直线,和控制点1与控制点2连接的直线,作为使用指定半径的圆的切线,画出两条切线之间的弧线路径。
语法:ctx.arcTo(x1, y1, x2, y2, radius);
- x1:第一个控制点的 x 轴坐标;
- y1:第一个控制点的 y 轴坐标;
- x2:第二个控制点的 x 轴坐标;
- y2:第二个控制点的 y 轴坐标;
- radius:圆弧的半径。
示例
const canvas = document.querySelector('.canvas-arc-to')
const ctx = canvas.getContext('2d')
ctx.setLineDash([])
ctx.beginPath()
ctx.moveTo(150, 20)
ctx.arcTo(150, 100, 50, 20, 30)
ctx.stroke()
ctx.fillStyle = 'blue'
// base point
ctx.fillRect(150, 20, 10, 10)
ctx.fillStyle = 'red'
// control point one
ctx.fillRect(150, 100, 10, 10)
// control point two
ctx.fillRect(50, 20, 10, 10)
//
ctx.setLineDash([5, 5])
ctx.moveTo(150, 20)
ctx.lineTo(150, 100)
ctx.lineTo(50, 20)
ctx.stroke()
ctx.beginPath()
ctx.arc(120, 38, 30, 0, 2 * Math.PI)
ctx.stroke()