Любые фигуры в canvas можно создать с помощью контуров. Контур - это набор точек, которые, соединяясь в отрезки линий, могут образовывать различные фигуры, изогнутые или нет, разной ширины и разного цвета. Контур (или субконтур) может быть закрытым.
В отличие от функций создания прямоугольников, контуры в canvas создаются в несколько этапов:
- создание контура;
- создание рисунка контура;
- закрытие контура;
- обводка или заливка контура для его отображения в браузере.
Следующие функции применяются при создании и закрытии контуров:
- beginPath() - создаёт новый контур;
- closePath() - закрывает контур;
- stroke() - рисует фигуру с внешней обводкой.
- fill() - рисует фигуру с заливкой внутренней области контура.
Функции построения рисунка контура:
- moveTo(x, y) - установить начальную позицию рисования контура;
- lineTo(x, y) - рисует линию с текущей позиции до позиции, определённой в параметрах;
- arc(x, y, r, start, end, false) - рисует дугу с центром в точке (x,y) радиусом r, начиная с угла start и заканчивая в end в направлении против часовой стрелки anticlockwise (по умолчанию, true - по ходу движения часовой стрелки), углы start и end - в радианах;
- arcTo(x1, y1, x2, y2, r) - рисует дугу с заданными контрольными точками и радиусом, соединяя эти точки прямой линией.
- quadraticCurveTo(cp1x, cp1y, x, y) - рисует квадратичную кривую Безье с текущей позиции пера в конечную точку с координатами x и y, используя контрольную точку с координатами cp1x и cp1y;
- bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) - рисует кубическую кривую Безье с текущей позиции пера в конечную точку с координатами x и y, используя две контрольные точки с координатами (cp1x, cp1y) и (cp2x, cp2y).
- rect(x, y, width, height) - добавляет в контур прямоугольник, с координатами верхнего левого угла (x, y) и шириной и высотой - width и height.
Примечание: перевести градусы в радианы можно с помощью следующего выражения:
gssdg
Ирпа
Рис.
Неро
Рис.
Рис.
Пример 1.
Рис. 1.
Литература: