Книга: Выразительный JavaScript
Пути
Пути
Путь – последовательность линий. Двумерный холст имеет странный подход к описанию путей. Всё делается через побочные эффекты. Пути – не значения, которые можно хранить или передавать. Вместо этого, если вам что-то надо сделать с путём, вы создаёте последовательность вызовов метода для описания его формы.
<canvas></canvas>
<script>
var cx = document.querySelector("canvas").getContext("2d");
cx.beginPath();
for (var y = 10; y < 100; y += 10) {
cx.moveTo(10, y);
cx.lineTo(90, y);
}
cx.stroke();
</script>
Пример создаёт путь из нескольких горизонтальных отрезков, и затем обводит их методом stroke
. Каждый сегмент, созданный через lineTo
, начинается с текущей позиции пути. Эта позиция – обычно конец предыдущего сегмента, если только не было вызова moveTo
. В последнем случае следующий сегмент начнётся с позиции, заданной в moveTo
.
При заливке пути каждая из форм заливается отдельно. Путь может содержать несколько форм – каждое движение moveTo
начинает новую. Но путь должен быть закрытым (начало и конец находятся на одном месте), прежде чем его можно будет закрасить. Если путь не закрыт, от его конца до начала добавляется линия, и заливается форма, очерченная закрытым путём.
<canvas></canvas>
<script>
var cx = document.querySelector("canvas").getContext("2d");
cx.beginPath();
cx.moveTo(50, 10);
cx.lineTo(10, 70);
cx.lineTo(90, 70);
cx.fill();
</script>
Пример рисует закрашенный треугольник. Заметьте, что непосредственно были нарисованы только две стороны. Третья, от правого нижнего угла обратно к вершине, подразумевается – она не будет закрашена вызовом stroke
.
Также можно использовать метод closePath
, чтобы принудительно закрыть путь, добавив реальный сегмент до начала пути. Этот сегмент будет закрашен вызовом stroke
.
- 10.5. Транзакции и пути доступа меню
- Барьеры на пути подражателей
- Пути к отступлению
- 9.5.2. Поиск пути в графе
- Конверсионные пути на мини-сайтах
- Построение пути сертификации
- 11.4. Пути автоматизации процессов управления производством MRP – системы
- Построение пути для кросс-сертифицированных PKI
- 12.5. Транзакции и пути доступа меню
- 15.11. Транзакции и пути доступа меню
- Трюки? Кратчайшие пути?
- Не имей сто рублей. Простые пути найма сотрудников