Преобразование обводки в путь в холсте HTML - PullRequest
1 голос
/ 23 июня 2011

Можно ли обвести контур так, чтобы он не рисовался на экране, а преобразовывался в новый путь?Если да, то как?

1 Ответ

4 голосов
/ 23 июня 2011

На холсте (почти) все фигуры, обведенные или заполненные, являются контурами. В холсте нет понятия «обводка», но есть концепция вызова stroke() на пути.

То, что вы можете сделать, это создать путь, заполнить его и затем обвести тот же путь.

ctx.beginPath();
ctx.moveTo(50,50);
ctx.lineTo(100,100);
ctx.lineTo(25,100);
ctx.closePath();


ctx.fillStyle = 'gold'
ctx.fill();

// The path is still there, lets stroke it
ctx.lineWidth = 4;
ctx.stroke();

Живой пример:

http://jsfiddle.net/9SK2C/

Однако учтите, что как только вы начинаете новый путь, этот старый путь теряется навсегда. Не существует встроенного способа сохранения или восстановления путей. Если вы хотите отслеживать путь, чтобы сохранить / восстановить его, вы должны все это учитывать.

Вы также не можете редактировать путь. Вы можете добавить его в конец, но нет пути назад и изменения точек на пути, как в (скажем) SVG. Вместо этого вы должны переделать его с новыми очками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...