CanvasContext.quadraticCurveTo
收藏
我的收藏

注意:该接口已停止维护,建议使用 Canvas 组件 V2

基础库 1.0.0 开始支持本方法,这是一个同步方法。

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

语法

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

参数说明

cpx

类型默认值必填说明最低支持版本
number贝塞尔控制点的 x 坐标1.0.0

cpy

类型默认值必填说明最低支持版本
number贝塞尔控制点的 y 坐标1.0.0

x

类型默认值必填说明最低支持版本
number终点的 x 轴坐标1.0.0

y

类型默认值必填说明最低支持版本
number终点的 y 轴坐标1.0.0

返回值

扫码体验

请使用字节宿主APP扫码

代码示例

开发者工具中预览

【示例 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