Элемент Canvas
HTML Canvas и библиотеки для работы с ним
Холсты в HTML
Элемент <canvas> в HTML позволяет рисовать графику с помощью JavaScript. Этот элемент представляет собой прямоугольник, на котором можно рисовать с помощью API рисования. Он может использоваться для создания графических эффектов, игр, анимаций и других визуальных элементов, таких как линии, фигуры, текст, анимации и даже игры. Основное преимущество Canvas заключается в том, что все графические операции выполняются с использованием JavaScript, что дает полный контроль над отображением.
Этот инструмент используется для прорисовки фигур, текста, а также создания визуальных эффектов, таких как градиенты и прозрачность.
Чтобы использовать Canvas, необходимо создать элемент <canvas> в HTML и задать ему размеры. В JavaScript для работы с ним используется метод getContext('2d').
Пример простого Canvas:



JavaScript предоставляет API для рисования на холсте. Вы можете использовать этот API для рисования форм, текста, растровых изображений и других элементов на холсте. Пример кода:

1. Создание элемента Canvas

widthиheight: задают размеры области для рисования.getContext('2d'): создает 2D-контекст для рисования.
2. Прорисовка фигур
Прорисовка фигур
Для прорисовки фигур в Canvas используются методы для рисования прямоугольников, линий, дуг и кривых.
Для этого используются методы контекста.
Основные методы рисования:
-
ctx.fillRect(x, y, width, height)— рисует заполненный прямоугольник. -
ctx.strokeRect(x, y, width, height)— рисует только контур прямоугольника. -
ctx.clearRect(x, y, width, height)— очищает часть холста. -
ctx.beginPath()— начинает новый путь для рисования. -
ctx.moveTo(x, y)— перемещает "перо" в новую точку. -
ctx.lineTo(x, y)— рисует линию от текущей точки до новой точки. -
ctx.stroke()— применяет обводку текущего пути. -
ctx.fill()— заполняет текущий путь.
Круги
arc(x, y, radius, startAngle, endAngle, anticlockwise): рисует часть круга или полный круг.
Пример:

Прямоугольники
fillRect(x, y, width, height): рисует заполненный прямоугольник.strokeRect(x, y, width, height): рисует только контур прямоугольника.clearRect(x, y, width, height): очищает часть холста.
Пример:

3. Заливка и очистка
Для заливки фигур и очистки области Canvas используются методы:
-
ctx.fillStyle = 'color'— задаёт цвет заливки. -
ctx.fillRect(x, y, width, height)— рисует заполненный прямоугольник. -
ctx.clearRect(x, y, width, height)— очищает область на холсте.
Пример:

4. Прорисовка текста
Для вывода текста в Canvas используются методы:
-
ctx.font = 'font-size font-family'— задаёт стиль текста. -
ctx.fillText(text, x, y)— рисует заполненный текст. -
ctx.strokeText(text, x, y)— рисует обводку текста.
Пример вывода текста:

5. Использование прозрачности и шаблонов
Прозрачность
Прозрачность и шаблоны позволяют создавать визуально сложные эффекты.
Прозрачность
-
ctx.globalAlpha = value— задаёт глобальную прозрачность всех последующих элементов (значение от 0 до 1). -
ctx.fillStyle = 'rgba(r, g, b, alpha)'— задаёт прозрачный цвет для конкретного элемента.
Пример использования прозрачности:

Шаблоны (Patterns)
Шаблоны позволяют использовать изображения или другие графические элементы для заливки фигур.
-
ctx.createPattern(image, repetition)— создаёт узор из изображения (повторение: 'repeat', 'repeat-x', 'repeat-y', 'no-repeat').
Пример шаблона:

6. Градиенты в Canvas
Градиенты позволяют плавно переходить от одного цвета к другому. В Canvas можно использовать два типа градиентов:
-
Линейный градиент (
createLinearGradient(x0, y0, x1, y1)) — от одной точки до другой. -
Радиальный градиент (
createRadialGradient(x0, y0, r0, x1, y1, r1)) — от одного круга к другому.
Пример линейного градиента:

📘 Радиальный градиент

7. Примеры
📘 Пример 1: Рисование фигуры с градиентом и текстом


📘 Пример 2: Круг с прозрачностью и градиентом


- Canvas — это мощный инструмент для рисования графики на веб-странице с помощью JavaScript.
- Мы можем рисовать фигуры, добавлять заливку и контуры, прорисовывать текст, использовать прозрачность, градиенты и шаблоны.
- Умение работать с Canvas открывает возможности для создания динамических и интерактивных элементов, таких как игры, графики, анимации и другие визуальные эффекты.