JavaScript | Как нарисовать красную диагональную линию на холсте canvas?

JavaScript | Как нарисовать красную диагональную линию на холсте canvas?

Мы работаем с HTML-страницей в браузере и хотели бы в HTML-элементе «canvas» нарисовать красную линию, которая расположена диагонально относительно самого блока холста. Как это сделать?

Для создания объектов мы используем язык JavaScript и интерфейсы объектной модели документа DOM.

 

Пример HTML-файла с JavaScript кодом, который рисует красную диагональную линию на холсте canvas

<!DOCTYPE html>

<html lang=«en»>

<head>

    <meta charset=«UTF-8»>

    <meta http-equiv=«X-UA-Compatible» content=«IE=edge»>

    <meta name=«viewport» content=«width=device-width, initial-scale=1.0»>

    <title>Рисуем красную диагональную линию на холсте canvas на странице в браузере</title>

</head>

<body>

    <h1>Рисуем красную диагональную линию на холсте canvas на странице в браузере</h1>

    <script>

        // Создаём новый объект холста

        let cs = document.createElement(‘canvas’);

        // Ширина холста

        cs.width = 500;

        // Высота холста

        cs.height = 500;

        // Контекст рисования на холсте

        let ctx = cs.getContext(‘2d’);

        // Создаём ПУТЬ на холсте

        ctx.beginPath();

        // Указываем ширину линии

        ctx.lineWidth = 5;

        // Указываем стартовую позицию рисования линии

        ctx.moveTo(0, 0);

        // Указываем финишную позицию рисования линии

        ctx.lineTo(cs.width, cs.height);

        // Указываем цвет обводки для нашего ПУТИ

        ctx.strokeStyle = ‘#ff0000’

        // Обводим контур текущего ПУТИ

        ctx.stroke();

        // Добавляем наш холст последним ребёнком для HTML-элемента body

        document.body.append(cs);

    </script>

</body>

</html>

 

Как работает данный код?

Сначала мы создаём силами JavaScript новый объект HTML-элемента «canvas» и складываем его в переменную «cs«. Мы обращаемся к объекту document, который был построен браузером после получения нашего кода с HTML-разметкой. У объекта document мы вызываем метод createElement() и внутрь передаём один параметр — строку ‘canvas’. Теперь у нас есть холст.

После получения объекта холста мы указываем его ширину и высоту в пикселях. За это отвечают свойства с ключами «width» и «height«. Для простоты восприятия линии наш холст будет квадратным со стороной в 500 пикселей. Это значения более наглядное, чем по-умолчанию.

Далее нам нужно сказать каким образом мы будем отрисовывать нашу линию на холсте. За это отвечает объект, который называется «контекстом рисования на холсте». Мы обращаемся к холсту «cs» и у него вызываем метод getContext(). Внутрь метода мы передаём строку ‘2d’. Новый объект складываем в переменную «ctx«. Теперь у нас есть отдельный контекст рисования для нашей будущей линии.

 

Создаём новый объект пути методом beginPath() для объекта «контекста рисования». Для наглядности делаем линии толщиной в 5 пикселей — свойство «lineWidth«.

Затем указываем стартовую позицию рисования линии методом moveTo(). В качестве двух параметров передаём стартовое положение по оси X(горизонт) и по оси Y(вертикаль). В нашем случае это НОЛЬ и НОЛЬ.

Затем указываем финишную позицию рисования линии lineTo(). Также принимает два параметра. Значения берём из размеров самого холста — «cs.width» и «cs.height«. В нашем случае подставится ПЯТЬСОТ и ПЯТЬСОТ.

После этого указываем цвет обводки для нашего ПУТИ. Свойству «strokeStyle» присваиваем значение ‘#ff0000’.

Выполняем обводку ПУТИ методом stroke().

После всех модификаций помещаем наш холст с контекстом рисования на страницу документа методом append(), для объекта body.

Нарисовали красную диагональную линию на холсте canvas в JavaScript
Нарисовали красную диагональную линию на холсте canvas в JavaScript

На странице браузера отрисуется красная диагональная линия, которая будет идти вниз слева направо.

 

Информационные ссылки

JavaScript | Как создать холст canvas с красным квадратом 100 на 100 пикселей на странице?

Стандарт ECMAScripthttps://tc39.es/ecma262/multipage/

Стандарт DOM — Раздел «createElement(localName [, options])» — https://dom.spec.whatwg.org/#ref-for-dom-document-createelement①

Стандарт DOM — Раздел «append(nodes)» — https://dom.spec.whatwg.org/#ref-for-dom-parentnode-append①

Стандарт HTML — Раздел «width and height» — https://html.spec.whatwg.org/multipage/canvas.html#the-canvas-element:the-canvas-element-19

Стандарт HTML — Раздел «canvas.getContext(contextId [, options ])» — https://html.spec.whatwg.org/multipage/canvas.html#dom-canvas-getcontext-dev

Стандарт HTML — Раздел «Drawing paths to the canvas» — https://html.spec.whatwg.org/multipage/canvas.html#drawing-paths-to-the-canvas