Spec-Zone.ru › Web APIs

CanvasRenderingContext2D: метод arc()

Базовая линия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод CanvasRenderingContext2D.arc() API 2D-холста добавляет дугу окружности к текущей подтраектории.

Синтаксис

arc(x, y, radius, startAngle, endAngle)
arc(x, y, radius, startAngle, endAngle, counterclockwise)

Метод arc() создаёт дугу окружности, центрированную в точке (x, y), с радиусом radius. Траектория начинается в точке startAngle, заканчивается в точке endAngle, и движется в направлении, заданном значением counterclockwise (по умолчанию — по часовой стрелке).

Параметры

x

Горизонтальная координата центра дуги.

y

Вертикальная координата центра дуги.

radius

Радиус дуги. Должен быть положительным.

startAngle

Угол начала дуги в радианах, измеряемый от положительной части оси x.

endAngle

Угол окончания дуги в радианах, измеряемый от положительной части оси x.

counterclockwise Необязательно

Необязательное булево значение. Если true, дуга рисуется против часовой стрелки между углами начала и конца. По умолчанию false (по часовой стрелке).

Возвращаемое значение

None (undefined).

Примеры

Рисование полной окружности

В этом примере используется метод arc() для рисования полной окружности.

HTML

<canvas></canvas>

JavaScript

Дуга имеет координаты x=100, y=75 и радиус 50. Для полной окружности дуга начинается с угла 0 радиан (0°), и заканчивается углом 2π радиан (360°).

const canvas = document.querySelector("canvas");
const ctx = canvas.getContext("2d");

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

Результат

Различные фигуры

В этом примере демонстрируются различные фигуры, показывающие возможности метода arc().

const canvas = document.querySelector("canvas");
const ctx = canvas.getContext("2d");

// Draw shapes
for (let i = 0; i <= 3; i++) {
  for (let j = 0; j <= 2; j++) {
    ctx.beginPath();
    let x = 25 + j * 50; // x coordinate
    let y = 25 + i * 50; // y coordinate
    let radius = 20; // Arc radius
    let startAngle = 0; // Starting point on circle
    let endAngle = Math.PI + (Math.PI * j) / 2; // End point on circle
    let counterclockwise = i % 2 === 1; // Draw counterclockwise

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

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

Результат

Спецификации

Спецификация
HTML
# dom-context-2d-arc-dev

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
arc 1 12 1.5 11.6 3 18 4 12 1 1.0 4.4

См. также

  • Интерфейс, определяющий этот метод: CanvasRenderingContext2D
  • Используйте CanvasRenderingContext2D.ellipse(), чтобы нарисовать эллиптическую дугу.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/arc

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API