阿里云首页 管理控制台

CanvasContext.bezierCurveTo

创建三次方贝塞尔曲线路径。曲线的起始点为路径中前一个点。

入参

Object 类型,属性如下:

属性类型说明
cp1xNumber第一个贝塞尔控制点 x 坐标。
cp1yNumber第一个贝塞尔控制点 y 坐标。
cp2xNumber第二个贝塞尔控制点 x 坐标。
cp2yNumber第二个贝塞尔控制点 y 坐标。
xNumber结束点 x 坐标。
yNumber结束点 y 坐标。

示例代码

//.js
const ctx = my.createCanvasContext('myCanvas')

// 画点
ctx.beginPath()
ctx.arc(20, 20, 2, 0, 2 * Math.PI)
ctx.setFillStyle('red')
ctx.fill()

ctx.beginPath()
ctx.arc(200, 20, 2, 0, 2 * Math.PI)
ctx.setFillStyle('lightgreen')
ctx.fill()

ctx.beginPath()
ctx.arc(20, 100, 2, 0, 2 * Math.PI)
ctx.arc(200, 100, 2, 0, 2 * Math.PI)
ctx.setFillStyle('blue')
ctx.fill()

ctx.setFillStyle('black')
ctx.setFontSize(12)

// 画参考线
ctx.beginPath()
ctx.moveTo(20, 20)
ctx.lineTo(20, 100)
ctx.lineTo(150, 75)

ctx.moveTo(200, 20)
ctx.lineTo(200, 100)
ctx.lineTo(70, 75)
ctx.setStrokeStyle('#AAAAAA')
ctx.stroke()

// 画二次曲线
ctx.beginPath()
ctx.moveTo(20, 20)
ctx.bezierCurveTo(20, 100, 200, 100, 200, 20)
ctx.setStrokeStyle('black')
ctx.stroke()

ctx.draw()

显示效果如下图所示:

image

针对 moveTo(20, 20) bezierCurveTo(20, 100, 200, 100, 200, 20) 的三个关键坐标如下:

红色:起始点(20, 20)

蓝色:两个控制点(20, 100) (200, 100)

绿色:终止点(200, 20)