So ziehe ich meinen Kreis:HTML Canvas wird kreisförmig gelöscht und wird nicht vollständig gelöscht?
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();
Wir erhalten diese: https://i.imgur.com/qhrDSyr.png
Dope. Jetzt möchte ich den Canvas löschen - wische ihn komplett sauber.
homectx.clearRect(0, 0, homec.width, homec.height);
Dies nimmt ein kreisförmiges Stück aus der linken oberen Ecke: https://i.imgur.com/uqJ4rA9.png
Okay, keine große Sache. homec's Breite und Höhe sind beide 180px (und haben sich nie geändert), also stoße ich einfach auf, wenn wir in einer Kreisform von 0, 0 räumen - das sollte funktionieren.
homectx.clearRect(0, 0, 600, 600);
Gleichgroße Stück verschwindet.
Was mache ich hier falsch? Wie lösche ich das?
Was ist das Ziel hier? Die erste Pfaddeklaration wird nicht verwendet, du stellst einen ungespeicherten Zustand wieder her, und dein Clipping wird auf dem zweiten Bogen gemacht (welcher Mittelpunkt bei 0,0 liegt). Und ich werde nicht über missbrauchten closePath sprechen, jeder tut das ... – Kaiido