Книга: Выразительный JavaScript
Итог
Итог
В этой главе мы обсудили техники рисования графики в браузере, сконцентрировавшись на элементе <canvas>
.
Узел холста представляет область документа, где программа может рисовать. Это делается через объект context
, создаваемый методом getContext
. Интерфейс двумерного рисования позволяет закрашивать и обводить разные формы. Свойство fillStyle
задаёт заливку форм. Свойства strokeStyle
и lineWidth
управляют тем, как рисуются линии.
Прямоугольники и куски текста можно рисовать одним вызовом метода. Методы fillRect
и strokeRect
рисуют прямоугольники, а fillText
и strokeText
выводят текст. Для создания произвольных форм нам нужно строить пути.
Вызов beginPath
начинает путь. Несколько методов добавляют линии и кривые к текущему пути. Например, lineTo
добавляет прямую. Когда путь закончен, его можно заполнить методом fill
или обвести методом stroke
.
Перемещение пикселей с картинки или другого холста на наш делается методом drawImage
. По умолчанию, он рисует всю исходную картинку, но с большим количеством параметров вы можете скопировать нужный участок изображения. В нашей игре мы использовали эту возможность, копируя разные позы игрового персонажа из частей картинки, содержавшей много поз.
Перемещения позволяют рисовать форму, ориентированную по-разному. Двумерный контекст хранит текущее преобразование, которое можно менять через методы translate
, scale
и rotate
. Это повлияет на все остальные операции рисования. Текущее состояние преобразований можно сохранить методом save
и восстановить методом restore
.
При рисовании анимаций на холсте можно использовать метод clearRect
для очистки частей холста перед перерисовкой.