Path2D объекты позволяют сохранять пути и воспроизводить их на холсте canvas по мере необходимости.
Конструктор Path2D() возвращает вновь созданный объект Path2D.
new Path2D(); // пустой path объект
new Path2D(path); // копирование из другого path
new Path2D(d); // path из SVG
Пример 1. Варианты использования конструктора Path2D().
Все методы создания пути (path) применимы к объекту Path2D.
Метод | Описание | Параметры |
---|---|---|
addPath() | Добавляет путь к текущему пути с необязательной матрицей преобразования. | path, transform |
closePath() | Рисует прямую линию от текущей точки к началу пути. | |
moveTo() | Перемещает начальную точку нового подпути к координатам. | x, y |
lineTo() | Соединяет последнюю точку в пути с полученными координатами прямой линией. | x, y |
bezierCurveTo() | Добавляет к пути кубическую кривую Безье. | cp1x, cp1y, cp2x, cp2y, x, y |
quadraticCurveTo() | Добавляет к пути квадратичную кривую Безье. | cp1x, cp1y, x, y |
arc() | Добавляет к пути дугу с центром, заданным координатами. | x, y, R, startAngle, endAngle, по/против часовой стрелки |
arcTo() | Добавляет круговую дугу к траектории с заданными контрольными точками и радиусом, соединенную с предыдущей точкой прямой. | x, y, R |
ellipse() | Добавляет эллиптическую дугу с центром, заданным координатами. | x, y, RX, RY, startAngle, endAngle, по/против часовой стрелки |
rect() | Создает путь для прямоугольника. | x, y, width, height |
Табл. 1.
<html>
<head>
<style>
#canvas{
background-color: darkkhaki;
}
</style>
<script>
function onLoadHandler() {
var canvas = document.getElementById('canvas'),
context = canvas.getContext('2d'),
hexagram = new Path2D();
var x=0, y=0;
context.translate(50, 50);
hexagram.moveTo(x, y);
hexagram.lineTo(50, 0);
hexagram.closePath();
context.stroke(hexagram);
context.rotate(Math.PI/3);
context.stroke(hexagram);
context.rotate(Math.PI*2/3);
context.translate(-50, 0);
context.rotate(Math.PI*5/3);
context.stroke(hexagram);
}
</script>
</head>
<body onload = onLoadHandler()>
<canvas id="canvas">Обновите браузер!</canvas>
</body>
</html>
dgdf
Рис.
Литература: