1

画面に描画されずに新しいパスに変換されるようにパスをストロークできますか?もしそうなら、どのように?

4

1 に答える 1

4

キャンバスでは、(ほぼ)ストロークまたは塗りつぶされたすべての形状がパスです。キャンバスには「ストローク」の概念はありませんが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のように、パス内のポイントに戻って変更することはできません。代わりに、新しいポイントで最初から作り直さなければなりません。

于 2011-06-23T18:05:25.520 に答える