Метод rotate() в JavaScript для поворота изображения

В этом уроке вы узнаете, как использовать метод JavaScript rotate() для поворота элемента изображения .

rotate() — это метод контекста 2D-рисования. Метод rotate() позволяет вращать объект рисования на холсте.

Синтаксис:

ctx.rotate(angle)

Метод rotate() допускает угол поворота в радианах.

Если угол положительный, то вращение происходит по часовой стрелке. Если угол отрицательный, вращение происходит против часовой стрелки.

Чтобы преобразовать градус в радиан, используйте следующую формулу:

degree * Math.PI / 180

При добавлении поворота метод rotate() использует исходную точку холста в качестве центральной точки поворота.

На следующем рисунке показано вращение:

Пример rotate() canvas API

Если вы хотите изменить центральную точку вращения, вам нужно переместить исходную точку холста, используя метод translate() .

Содержание
  1. Пример
  2. HTML
  3. JavaScript

Пример

В следующем примере рисуется красный прямоугольник, начиная с центра холста. Затем он переводит начало холста в центр холста и рисует второй прямоугольник с поворотом на 45 градусов:

HTML

<canvas id="canvas" height="300" width="500">
</canvas>

JavaScript

const canvas = document.querySelector('#canvas');

if (canvas.getContext) {

    // rectangle's width and height
    const width = 150,
        height = 20;

    // canvas center X and Y
    const centerX = canvas.width / 2,
        centerY = canvas.height / 2;

    const ctx = canvas.getContext('2d');

    // a red rectangle
    ctx.fillStyle = 'red';
    ctx.fillRect(centerX, centerY, width, height);

    // move the origin to the canvas' center
    ctx.translate(centerX, centerY);

    // add 45 degrees rotation
    ctx.rotate(45 * Math.PI / 180);

    // draw the second rectangle
    ctx.fillStyle = 'rgba(0,0,255,0.5)';
    ctx.fillRect(0, 0, width, height);

}

Выход:

Вывод

Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript