javascript
1context.save(); 2context.translate(t.px[0], t.py[0]); 3context.rotate(Math.atan2(t.vy, t.vx)); 4context.beginPath(); 5context.ellipse(0, 0, 6.5, 4, 0, 0, 2 * Math.PI); 6context.fill(); 7context.restore();
上記はtimerなどで連続で呼び出し楕円を移動させるアニメーションのコードの一部です。
このコードのsave()とrestore()をコメントアウトするとcontext.ellipseで作成された楕円の位置がめちゃくちゃになります。
context.save()を調べると現在の塗りの色・輪郭の色・透明度・線の太さなどの描画スタイルを保存しrestoreで復元するとなっています。
位置的なものをどうこうするなどは書かれていません。なぜ描画位置がめちゃくちゃになるのか原理が解りません。
ちなみにコメントアウトしないと線状にきれいに移動します。
なぜ描画位置がめちゃくちゃになるのでしょうか?
回答1件
あなたの回答
tips
プレビュー