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
<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();
Вы можете редактировать код, представленный ниже, и сделанные вами изменения отобразятся на холсте в режиме реального времени (убедитесь, что вы используете браузер, поддерживающий данное свойство - смотрите таблицу совместимости):
Демонстрация разных форм дуг
В этом примере нарисованные разные формы чтобы показать возможности метода arc()
.
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