Vorrei realizzare un orologio analogico. Usando Canvas, ho iniziato con la lancetta dei secondi, disegnandola e poi cancellando l'immagine precedente disegnandola usando il colore dello sfondo.
Ma l'immagine cancellata usando il colore dello sfondo, non scompare completamente, forse perché i colori si sovrappongono. Cosa si deve fare per far scomparire completamente l'immagine precedente? Grazie
lanvoel
codice:<!doctype html> <HTML> <body> <canvas id="lavagna" width="400" height="400" style="border:1px solid black; "background-color:white"></canvas></p> <script> var c = document.getElementById('lavagna'); const Ox=c.width/2; //ascissa origine const Oy=c.height/2; //ordinata origine const u = 20; //unità di misura var ctx=c.getContext("2d"); //TRASLAZIONE ctx.translate(Ox,Oy); ctx.beginPath(); ctx.arc(0,0, 10*u, 0, 2*Math.PI); ctx.stroke(); for(ag=0; ag<=360; ag=ag+6) { ctx.moveTo(9.3*u*Math.cos(ag*Math.PI/180),9.3*u*Math.sin(ag*Math.PI/180)); ctx.lineTo(10*u*Math.cos(ag*Math.PI/180),10*u*Math.sin(ag*Math.PI/180)); if(ag%5==0){ ctx.moveTo(8.7*u*Math.cos(ag*Math.PI/180),8.7*u*Math.sin(ag*Math.PI/180)); ctx.lineTo(10*u*Math.cos(ag*Math.PI/180),10*u*Math.sin(ag*Math.PI/180)); } ctx.stroke(); } var ag=0; var agm; avvia(); function avvia() { secondi1=window.setInterval("secondi()",1000); } function secondi() { ctx.beginPath(); ctx.strokeStyle="white"; ctx.moveTo(0,0); ctx.lineTo(8.5*u*Math.cos(ag),8.5*u*Math.sin(ag)); ctx.stroke(); ag=ag+Math.PI/30; agm=ag; ctx.beginPath(); ctx.strokeStyle="black"; ctx.moveTo(0,0); ctx.lineTo(8.5*u*Math.cos(agm),8.5*u*Math.sin(agm)); ctx.stroke(); } </script> </body> </html>

Rispondi quotando