开发
API

CanvasContext.quadraticCurveTo

基础库 1.0.0 开始支持本方法。

创建二次贝塞尔曲线路径。需要 2 个点。 第一个点是控制点,第二个点是终点。 起始点是当前路径最新的点,创建二次贝赛尔曲线之前,可以使用 CanvasContext.moveTo 方法进行改变。

语法

CanvasContext.quadraticCurveTo(cpx, cpy, x, y)

参数说明

参数类型默认值必填说明最低支持版本
cpxnumber贝塞尔控制点的 x 坐标1.0.0
cpynumber贝塞尔控制点的 y 坐标1.0.0
xnumber终点的 x 轴坐标1.0.0
ynumber终点的 y 轴坐标1.0.0

返回值

代码示例

【代码示例 1】简单示例

<!-- index.ttml -->
<canvas canvas-id="myCanvas"></canvas>
// index.js
Page({
  onReady: function (options) {
    const canvasCtx = tt.createCanvasContext("myCanvas");
    canvasCtx.beginPath();
    // 起始点
    canvasCtx.moveTo(20, 20);
    // 控制点(20,100) 结束点(200,20)
    canvasCtx.quadraticCurveTo(20, 100, 200, 20);
    canvasCtx.stroke();
    canvasCtx.draw();
  },
});

【代码示例 2】带坐标系示例

<!-- index.ttml -->
<canvas canvas-id="myCanvas"></canvas>
// index.js
Page({
  onReady: function (options) {
    const canvasCtx = tt.createCanvasContext("myCanvas");
    canvasCtx.beginPath();
    // 起始点(20,20)
    canvasCtx.arc(20, 20, 2, 0, 2 * Math.PI);
    canvasCtx.setFillStyle("red");
    canvasCtx.fill();

    canvasCtx.beginPath();
    canvasCtx.arc(200, 20, 2, 0, 2 * Math.PI);
    canvasCtx.setFillStyle("lightgreen");
    canvasCtx.fill();

    canvasCtx.beginPath();
    canvasCtx.arc(20, 100, 2, 0, 2 * Math.PI);
    canvasCtx.setFillStyle("blue");
    canvasCtx.fill();

    canvasCtx.setFillStyle("black");
    canvasCtx.setFontSize(12);

    // Draw guides
    canvasCtx.beginPath();
    canvasCtx.moveTo(20, 20);
    canvasCtx.lineTo(20, 100);
    canvasCtx.lineTo(200, 20);
    canvasCtx.setStrokeStyle("#AAAAAA");
    canvasCtx.stroke();

    // Draw quadratic curve
    canvasCtx.beginPath();
    canvasCtx.moveTo(20, 20);
    // 控制点(20,100) 结束点(200,20)
    canvasCtx.quadraticCurveTo(20, 100, 200, 20);
    canvasCtx.setStrokeStyle("black");
    canvasCtx.stroke();

    canvasCtx.draw();
  },
});

Bug & Tip

点击纠错
评价此篇文档