Heim > Web-Frontend > js-Tutorial > Erstellen Sie eine Uhr mit Canvas

Erstellen Sie eine Uhr mit Canvas

一个新手
Freigeben: 2017-09-06 14:45:58
Original
1130 Leute haben es durchsucht

Erster Schritt.

<canvas id="myCanvas" style="border:1px red solid" width="300px"; height="300px";></canvas>
Nach dem Login kopieren

Dann definiert

var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d");
Nach dem Login kopieren

eine Funktion, die die Uhr zeichnet und sie einmal pro Sekunde über den Timer aufruft. Standardmäßig wird sie einmal über den Funktionsnamen aufgerufen und dann aufgerufen durch den Timer. Denn wenn Sie es direkt mit einem Timer aufrufen, ist es 1 Sekunde langsamer als die tatsächliche Zeit

drawfun();
setInterval(drawfun,1000);
Nach dem Login kopieren

Funktionskörperinhalt:

1). , also Setzen Sie es in die erste Zeile.

//清除画布ctx.clearRect(0, 0, 300, 300);
Nach dem Login kopieren

2). Das Zeichnen des äußeren Rahmens und der Mitte der Uhr ist leicht zu erklären.

  //时钟框和圆心  ctx.beginPath();
  ctx.arc(150,150,100,0,2*Math.PI);
  ctx.stroke();
  ctx.beginPath();
  ctx.fillStyle="black";
  ctx.arc(150,150,3,0,2*Math.PI);
  ctx.fill();
Nach dem Login kopieren

3). Zeichnen Sie Stunden- und Minutenskalen.

//绘制时分刻度
       for(var i=0;i<60;i++){
           ctx.save();
           ctx.beginPath();           //让画布以圆心为原点
           ctx.translate(150,150);           //每秒之间的角度
           ctx.rotate(Math.PI*2/60*i);           //开始绘制刻度
           ctx.moveTo(0,-99);           //时钟刻度
           if(i%5==0){
               ctx.strokeStyle = &#39;#333&#39;;
               ctx.lineWidth = 3;
               ctx.lineTo(0,-87);
           }else {//分钟刻度
               ctx.strokeStyle = &#39;#ccc&#39;;
               ctx.lineWidth = 2;
               ctx.lineTo(0,-90);
           }
           ctx.stroke();
           ctx.closePath();
           ctx.restore();
       }
Nach dem Login kopieren

4). Zeichnen Sie die Stunden

//绘制小时数
       for(var i=0;i<60;i++){
            ctx.beginPath();            //获取每秒秒钟之间的弧度算出小时数的坐标
            var hudu = (2*Math.PI / 360) * 6 * i;            
            var X = 150 + Math.sin(hudu) * 80 - 3.5;            
            var Y = 150 - Math.cos(hudu) * 80 + 5; //注意此处是“-”号,因为我们要得到的Y是相对于(0,0)而言的。
            if(i%5==0){                if(i==0){
                    ctx.fillText("12",X-3,Y);
                }else{
                    ctx.fillText("" + i / 5 + "",X,Y);
                }
                ctx.stroke();
            }
       }
Nach dem Login kopieren

5).

Das obige ist der detaillierte Inhalt vonErstellen Sie eine Uhr mit Canvas. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage