Heim  >  Artikel  >  Web-Frontend  >  Wie man eine Uhr auf Canvas_html5 zeichnet, Tutorial-Fähigkeiten

Wie man eine Uhr auf Canvas_html5 zeichnet, Tutorial-Fähigkeiten

韦小宝
韦小宝Original
2017-12-16 10:20:251774Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zum Zeichnen einer Uhr auf Leinwand in HTML5 vorgestellt. Der Herausgeber ist der Meinung, dass HTML immer leistungsfähiger wird, daher möchte ich ihn jetzt mit Ihnen teilen und als Referenz verwenden. Freunde, die mit HTML vertraut sind, können dem Editor folgen, um einen Blick darauf zu werfen

Dieser Artikel stellt vor, wie man eine Uhr auf Leinwand zeichnet, und ich möchte ihn mit Ihnen teilen. Die Details sind wie folgt:

Das Rendering ist

Code:


var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var year,month,day,hour,second,minute;
// 绘制表盘
function drawClockPie(){
    ctx.beginPath();
    ctx.lineWidth = 2;
    ctx.strokeStyle = '#333';
    ctx.arc(150,150,146,0,2*Math.PI);
    ctx.stroke();
    ctx.closePath();
    ctx.beginPath();
    ctx.arc(150,150,6,0,2*Math.PI);
    ctx.fillStyle = 'red';
    ctx.fill();
    ctx.closePath();
}

// 绘制时刻度
function drawClockHours(){
    for(var i = 0,l = 12; i < 12; i++){
        ctx.save();
        ctx.translate(150,150);
        ctx.rotate(i*1/12*2*Math.PI);
        ctx.beginPath();
        ctx.lineWidth = 5;
        ctx.strokeStyle = &#39;#333&#39;;
        ctx.moveTo(0,-140);
        ctx.lineTo(0,-125);
        ctx.stroke();
        ctx.closePath();
        ctx.restore();
    }
}

// 绘制分刻度
function drawClockMins(){
    for(var i = 0,l = 60; i < 60; i++){
        ctx.save();
        ctx.translate(150,150);
        ctx.rotate(i*1/60*2*Math.PI);
        ctx.beginPath();
        ctx.lineWidth = 3;
        ctx.strokeStyle = &#39;#333&#39;;
        ctx.moveTo(0,-140);
        ctx.lineTo(0,-133);
        ctx.stroke();
        ctx.closePath();
        ctx.restore();
    }
}

// 绘制时针
function drawHourPin(){
    ctx.save();
    ctx.translate(150,150);
    ctx.rotate((hour*60*60+minute*60+second)/(12*60*60)*2*Math.PI);
    ctx.beginPath();
    ctx.strokeStyle = &#39;#333&#39;;
    ctx.lineWidth = 3;
    ctx.moveTo(0,0);
    ctx.lineTo(0,-40);
    ctx.stroke();
    ctx.closePath();
    ctx.restore();
}

// 绘制分针
function drawMinPin(){
    ctx.save();
    ctx.translate(150,150);
    ctx.rotate((minute*60+second)/(60*60)*2*Math.PI);
    ctx.beginPath();
    ctx.strokeStyle = &#39;#333&#39;;
    ctx.lineWidth = 2;
    ctx.moveTo(0,0);
    ctx.lineTo(0,-60);
    ctx.stroke();
    ctx.closePath();
    ctx.restore();
}

// 绘制秒针
function drawSecPin(){
    ctx.save();
    ctx.translate(150,150);
    ctx.rotate(second/60*2*Math.PI);
    ctx.beginPath();
    ctx.strokeStyle = &#39;red&#39;;
    ctx.lineWidth = 1;
    ctx.moveTo(0,0);
    ctx.lineTo(0,-80);
    ctx.stroke();
    ctx.closePath();
    ctx.restore();
}

// 绘制时间文字
function drawText(){
    hour = hour >= 12 ? hour - 12 : hour;
    var time = &#39;现在是&#39; + year + &#39;年&#39; + month +
    &#39;月&#39; + day + &#39;日&#39; + hour + &#39;时&#39; + minute +
    &#39;分&#39; + second + &#39;秒&#39;;
    ctx.font = &#39;15px 黑体&#39;;
    ctx.fillText(time,24,350);
}

// 获取时间
function getTimes(){
    var date = new Date();
    year = date.getFullYear();
    month = date.getMonth() + 1;
    day = date.getDate();
    hour = date.getHours();
    minute = date.getMinutes();
    second = date.getSeconds();
}
setInterval(function(){
    ctx.clearRect(0,0,600,600);
    drawClockPie();
    drawClockHours();
    drawClockMins();
    getTimes();
    drawText();
    drawHourPin();
    drawMinPin();
    drawSecPin();
},1000);


Hinweis:

Natürlich muss die Zeit nicht jede Sekunde ermittelt werden, sondern kann direkt ermittelt und sekundenweise erhöht werden.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.

Verwandte Empfehlungen:

JS, Canvas-Zeichnung eines Kegelimplementierungscodes

JavaScript HTML5 Canvas implementiert das Zeichnen von Hyperlinks auf Bildern

Realisiert die U-Bahn-Stationsüberwachung basierend auf HTML5 Canvas

Das obige ist der detaillierte Inhalt vonWie man eine Uhr auf Canvas_html5 zeichnet, Tutorial-Fähigkeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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