# CanvasRenderingContext2D.arc()

`CanvasRenderingContext2D``.arc()` 是 Canvas 2D API 绘制圆弧路径的方法。 圆弧路径的圆心在 (x, y) 位置，半径为 r ，根据anticlockwise （默认为顺时针）指定的方向从 startAngle 开始绘制，到 endAngle 结束。

## 语法

```void ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);
```

### Parameters

`x`

`y`

`radius`

`startAngle`

`endAngle`

`anticlockwise` 可选

## 示例

### 使用 `arc` 方法

#### HTML

``````<canvas id="canvas"></canvas>
``````

#### JavaScript

``````var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

ctx.beginPath();
ctx.arc(75, 75, 50, 0, 2 * Math.PI);
ctx.stroke();
``````

### 不同的形状演示

``````var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

// Draw shapes
for (i=0;i<4;i++){
for(j=0;j<3;j++){
ctx.beginPath();
var x          = 25+j*50;               // x coordinate
var y          = 25+i*50;               // y coordinate
var radius     = 20;                    // Arc radius
var startAngle = 0;                     // Starting point on circle
var endAngle   = Math.PI+(Math.PI*j)/2; // End point on circle
var clockwise  = i%2==0 ? false : true; // clockwise or anticlockwise

ctx.arc(x,y,radius,startAngle,endAngle, clockwise);

if (i>1){
ctx.fill();
} else {
ctx.stroke();
}
}
}``````

ScreenshotLive sample

## 规范描述

Specification Status Comment
HTML Living Standard
CanvasRenderingContext2D.arc
Living Standard

## 浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

### Gecko-specific 注解

• `anticlockwise` 参数是可选的，
• 描述了 radius 为负数会抛出 `IndexSizeError` 错误（“索引或长度为负数，或者超过允许的数值”）。