
- •canvas
- •Чтобы рисовать на холсте, нужно написать определенный объем кода JavaScript. Эта задача состоит
- •Координаты холста
- •Прямые линии
- •Свойство lineWidth определяет толщину линии в пикселах. Например, следующая строка кода устанавливает толщину
- •Cвойство lineCap указывает тип концов линии. По умолчанию этому свойству присваивается значение butt
- •beginPath
- •Для заливки фигуры необходимовыбрать цвет заливки, установив значение свойства fillStyle, а потом вызвать
- •context.moveTo(250,50);
- •Прямоугольники
- •Чтобы рисовать что-то более сложное, чем линии и прямоугольники, нужно изучить следующие четыре
- •arc(x, y, radius, startAngle, endAngle, anticlockwise)
- •Три других метода рисования кривых — arcTo(), bezierCurveTo() и quadraticCurveTo() —
- •Прозрачность
- •Изображения
- •Создание нового графического объекта:
- •Теперь мы перейдём к рисованию изображения на холсте. Для этого существует функция drawImage.
- •Рисуем фрагмент изображения
- •Вставка в холст текста
- •Вместо метода fillText() можно использовать другой метод для ввода текста - strokeText(). Этот
- •Создание теней
- •Свойства для управления внешним видом теней в элементе Canvas
- •// Определение контекста рисования
- •Градиентная заливка в Canvas
- •При создании линейного градиента указываются две точки, представляющие начало и конец пути, вдоль
- •Очистка canvas
- •SVG-графика с точки зрения практического применения это, прежде всего, SVG-код в текстовом файле,
- •Атрибуты svg
- •Внедрение SVG изображений на страницу
- •Основные SVG-фигуры
- •Атрибуты простых фигур
- •Прямоугольник
- •Создание сложных фигур
- •Наиболее распространенные команды для рисования прямых линий и простых фигур (форм):
- •Команды создания кривых
- •Вставка растровых изображений
- •Вставка текста
- •Маски
- •CSS управление SVG
- •Трасформации
- •Список видов операций, которые можно задать в качестве значений атрибута transform:
- •Анимация
- •animate
- •Основные атрибуты
- •Атрибут 'restart'
- •Атрибуты set
- •animateMotion
- •animateTransform

Прозрачность
До сих пор мы имели дело с чистыми цветами. Но холст также позволяет применять частичную прозрачность, чтобы накладывать одну фигуру поверх другой. Существуют два способа использования прозрачности. Первый позволяет установить цвет, присвоив значения свойству fillStyle или strokeStyle и используя функцию rgba(), а не более распространенную функцию rgb().
Функция rgba() принимает три параметра — значения красной, зеленой и синей цветовых составляющих (от 0 до 255) и дополнительное значение альфа-канала (от 0 до 1), которое указывает прозрачность цвета. Значение альфа, равное 1, соответствует полной непрозрачности, а значение, равное 0 — полной прозрачности. Установив значение альфа между этими двумя пределами (например, 0.5), мы получим частично прозрачный цвет, позволяющий просматривать любое находящееся под ним содержимое.

//Устанавливаем цвета заливки и контура context.fillStyle = "rgb(100,150,185)"; context.lineWidth = 10;
context.strokeStyle = "red";
//Рисуем круг
context.arc(110, 120, 100, 0, 2*Math.PI); context.fill(); context.stroke();
//Не забудьте вызвать метод beginPath() перед тем,
//как рисовать новую фигуру
context.beginPath();
// Рисуем треугольник context.moveTo(215,50); context.lineTo(15,250); context.lineTo(315,250);
context.closePath(); // Заполняем треугольник прозрачным цветом context.fillStyle = "rgba(100,150,185,0.5)";
context.fill();
context.stroke();

Изображения
Добавление изображения условно можно разделить на два шага: создание JavaScript объекта Image, а второй и заключительный шаг это отрисовка изображения на холсте при помощи функции drawImage.

Создание нового графического объекта:
var img = new Image();
//Создание нового объекта изображения img.src = 'image.png';
//Путь к изображению которое необходимо нанести на холст

Теперь мы перейдём к рисованию изображения на холсте. Для этого существует функция drawImage.
drawImage(image, x, y)
Где x и y это координаты левого верхнего угла изображения, а первый параметр это изображение Стоит отметить что загрузка изображения происходит сразу после
присвоения объекту источника изображения, и если оно не загрузится полностью к моменту вызова функции отрисовки, то оно попросту не будет нарисовано на холсте. Для избежания этой ситуации используется такая конструкция:
var img = new Image(); // Новый объект img.onload = function() {
/* Какие-либо действия */
}
img.src = 'myImage.png‘;

<html> <meta charset='utf-8'> <head> <title>imgExample</title> </head> <body>
<canvas id='example'>Обновите браузер</canvas> <script>
var example = document.getElementById("example”) ctx = example.getContext('2d‘)
pic = new Image();
// "Создаём" изображение pic.src = ‘img.png'; pic.onload = function() { ctx.drawImage(pic, 0, 0);
}
</script>
</body>
</html>

Рисуем фрагмент изображения
Третий вызов drawImage с восемью параметрами, выглядит приблизительно так: drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
Первый параметр указывает на изображение
sx, sy, sWidth, sHeight указывают параметры фрагмента на изображение-источнике
dx, dy, dWidth, dHeight ответственны за координаты отрисовки фрагмента на холсте
ctx.drawImage(pic, 25, 42, 85, 55, 0, 0, 170, 110);

var example = document.getElementById('example'),
ctx |
= example.getContext('2d'), |
pic |
= new Image(); |
example.width = 600; example.height = 450; pic.src = 'sun.png'; pic.onload = function () { ctx.drawImage(pic, 0, 0);
ctx.drawImage(pic, 0, 130, 300, 300);
ctx.drawImage(pic, 25, 42, 85, 55, 300, 300, 170, 110);
}

Вставка в холст текста
Прежде чем вставлять в холст какой-либо текст, нужно указать шрифт для него, установив значение свойства контекста font. Это значение указывается посредством строки с таким же синтаксисом, как и для универсального свойства font CSS. Как минимум, нужно указать размер шрифта в пикселах и его название. В случае неуверенности в поддержке определенного шрифта браузерами, можно указать список шрифтов:
context.font = "20px Verdana, sans-serif";

context.font = "bold 20px Arial"; context.fillStyle = "black"; context.fillText("Текст.", 10, 10);
Текст можно вставлять в любое место на холсте, но только по одной строке за раз. Чтобы вставить несколько строк, нужно делать соответствующее число вызовов метода fillText().