だから、私は私の円を描く:https://i.imgur.com/qhrDSyr.pngHTML Canvasは循環的に消去され、完全に消去されませんか?
ドープ:
var homeimg = document.createElement("img");
homeimg.src = "img/nav/home-inactive.png";
var homec = document.getElementById("home-canvas");
var homectx = homec.getContext("2d");
homectx.beginPath();
homectx.arc(85, 85, 85, 0, 2 * Math.PI);
homectx.closePath();
homectx.shadowColor = "rgba(0, 0, 0, 0.3)";
homectx.shadowOffsetX = 2;
homectx.shadowOffsetY = 2;
homectx.shadowBlur = 3;
homectx.drawImage(homeimg, 0, 0, 170, 170);
homectx.beginPath();
homectx.arc(0, 0, 85, 0, 2 * Math.PI, true);
homectx.clip();
homectx.closePath();
homectx.restore();
は、我々はこれを取得します。今私はキャンバスをクリアしたい - それを完全にきれいに拭く。
homectx.clearRect(0, 0, homec.width, homec.height);
これは、左上隅のうち、円形チャンクを取りますhttps://i.imgur.com/uqJ4rA9.png
さて、大したことありません。 homecの幅と高さは両方とも180pxです(変更されたことはありません)ので、円の形を0、0からクリアしていれば、私はちょうどバンプします。
homectx.clearRect(0, 0, 600, 600);
同じサイズのチャンクが消えます。
私はここで間違っていますか?これをどうやってクリアするのですか?
ここで目標は何ですか?最初のパス宣言は使用されていません。保存されていない状態を復元していて、2番目の円弧(中心は0,0になります)でクリップが作成されます。そして、私はclosePathの誤用について話しません。 – Kaiido