CanvasContext.arc
收藏
我的收藏

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

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

根据指定方向(默认顺时针)从起始点开始创建一条弧线。

语法

CanvasContext.arc(x, y, r, sAngle, eAngle, anticlockwise)

参数说明

x

类型默认值必填说明最低支持版本
number圆弧中心(圆心)的 x 轴坐标1.0.0

y

类型默认值必填说明最低支持版本
number圆弧中心(圆心)的 y 轴坐标1.0.0

r

类型默认值必填说明最低支持版本
number圆的半径1.0.0

sAngle

类型默认值必填说明最低支持版本
number起始弧度,单位弧度(在 3 点钟方向)1.0.0

eAngle

类型默认值必填说明最低支持版本
number终止弧度1.0.0

anticlockwise

类型默认值必填说明最低支持版本
boolean弧度的方向是否是逆时针1.0.0

返回值

扫码体验

请使用字节宿主APP扫码

代码示例

开发者工具中预览

【示例 1】简单绘制:

<!-- index.ttml -->
<canvas canvas-id="myCanvas"></canvas>
// index.js
Page({
  onLoad: function (options) {
    const canvasCtx = tt.createCanvasContext("myCanvas");
    canvasCtx.beginPath();
    canvasCtx.arc(75, 75, 50, 0, 2 * Math.PI);
    canvasCtx.stroke();
    canvasCtx.draw();
  },
});

【示例 2】详细示例:

<!-- index.ttml -->
<canvas canvas-id="myCanvas"></canvas>
// index.js
Page({
  onLoad: function (options) {
    const canvasCtx = tt.createCanvasContext("myCanvas");

    // 绘制坐标
    canvasCtx.arc(100, 75, 50, 0, 2 * Math.PI);
    canvasCtx.setFillStyle("#EEEEEE");
    canvasCtx.fill();

    canvasCtx.beginPath();
    canvasCtx.moveTo(40, 75);
    canvasCtx.lineTo(160, 75);
    canvasCtx.moveTo(100, 15);
    canvasCtx.lineTo(100, 135);
    canvasCtx.setStrokeStyle("#AAAAAA");
    canvasCtx.stroke();

    canvasCtx.setFontSize(12);
    canvasCtx.setFillStyle("black");
    canvasCtx.fillText("0", 165, 78);
    canvasCtx.fillText("0.5*PI", 83, 145);
    canvasCtx.fillText("1*PI", 15, 78);
    canvasCtx.fillText("1.5*PI", 83, 10);

    // 绘制关键点
    canvasCtx.beginPath();
    canvasCtx.arc(100, 75, 2, 0, 2 * Math.PI);
    canvasCtx.setFillStyle("lightgreen");
    canvasCtx.fill();

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

    canvasCtx.beginPath();
    canvasCtx.arc(150, 75, 2, 0, 2 * Math.PI);
    canvasCtx.setFillStyle("red");
    canvasCtx.fill();

    // 绘制圆弧
    canvasCtx.beginPath();
    canvasCtx.arc(100, 75, 50, 0, 1.5 * Math.PI);
    canvasCtx.setStrokeStyle("#333333");
    canvasCtx.stroke();

    canvasCtx.draw();
  },
});

Bug & Tip