CanvasRenderingContext2D.arc()
CanvasRenderingContext2D.arc() метод Canvas 2D API добавляет дугу к пути с центром (x, y) и с радиусом r с началом в startAngle и с концом endAngle и с направлением против часовой стрелки (по умолчанию по часовой стрелке).
Синтаксис
void ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);
Параметры
x-
X координата центра дуги.
y-
Y координата центра дуги.
radius-
Радиус.
startAngle-
Угол начала дуги. Измеряется по часовой стрелке от положительной оси Х, выражается в радианах.
endAngle-
Угол завершения дуги. Измеряется по часовой стрелке от положительной оси Х, выражается в радианах.
anticlockwiseНеобязательный-
Необязательный
Boolean. Задаёт направление рисования дуги. Еслиtrue- против часовой,false- по часовой.
Примеры
Использование метода arc
Ниже приведён пример простого кода который рисует круг.
HTML
html
<canvas id="canvas"></canvas>
JavaScript
js
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.arc(75, 75, 50, 0, 2 * Math.PI);
ctx.stroke();
Вы можете редактировать код, представленный ниже, и сделанные вами изменения отобразятся на холсте в режиме реального времени (убедитесь, что вы используете браузер, поддерживающий данное свойство - смотрите таблицу совместимости):
Демонстрация разных форм дуг
В этом примере нарисованные разные формы чтобы показать возможности метода arc().
js
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 anticlockwise = i%2==1; // Draw anticlockwise
ctx.arc(x,y,radius,startAngle,endAngle, anticlockwise);
if (i>1){
ctx.fill();
} else {
ctx.stroke();
}
}
}
| Screenshot | Live sample |
|---|---|
![]() |
Спецификации
| Specification |
|---|
| HTML Standard # dom-context-2d-arc-dev |
Поддержка браузерами
BCD tables only load in the browser
Примечания относительно Gecko
Начиная с Gecko 2.0:
- Параметр
anticlockwiseопциональный, - Указывание отрицательного радиуса теперь приводит к ошибке
IndexSizeError(en-US) error ("Index or size is negative or greater than the allowed amount").
Смотрите также
- Интерфейс
Canvas,CanvasRenderingContext2D
