0

画像があり、同じ画像を異なる回転でキャンバスに複数回表示したいと思います。そのために、私context.rotate()は画像を回転させてcontext.fill()描画するために使用します。を使用して画像を表示できるようにするには、最初に次のようなメソッドfill()を使用する必要があります。createPattern()

context.save();
var altPattern = context.createPattern(image, "repeat");
context.fillStyle = altPattern;
context.restore();

私の問題は、とを使用save()していますがrestore()、最後createPattern()に使用すると最初の画像にも影響し、fillStylesすべての画像を1回転で描画することです。context.rotate()回転に使用しながら、同じ画像に異なるパターンを作成するにはどうすればよいですか?

もう一度呼び出しcreatePattern()て別の変数に割り当てることはできません。

4

1 に答える 1

0

はい、分かりました。context.beginPath()キャンバスの新しいパーツの塗りつぶしまたはストロークを開始するときに使用する必要があります。最初は使用しませんでした。moveTo()コンテキストを使用して移動し、fill()sどこにでも呼び出しました。動作しているように見えましたが、createPattern()この問題で出てきました。したがって、安全のために、context.beginPath()塗りつぶすまたはストロークすることを決定したすべての複雑な形状から常に開始します。

于 2012-08-02T01:09:20.687 に答える