Leinwand Uhr


In diesen Kapiteln werden wir eine analoge Uhr mit HTML-Canvas erstellen.


Teil I – Erstellen Sie die Leinwand

Die Uhr benötigt einen HTML-Container. Erstellen Sie eine HTML-Leinwand:

HTML Quelltext:

<!DOCTYPE html>
<html>
<body>

<canvas id="canvas" width="400" height="400" style="background-color:#333"></canvas>

<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var radius = canvas.height / 2;
ctx.translate(radius, radius);
radius = radius * 0.90
drawClock();

function drawClock() {
  ctx.arc(0, 0, radius, 0 , 2 * Math.PI);
  ctx.fillStyle = "white";
  ctx.fill();
}
</script>

</body>
</html>


Code erklärt

Fügen Sie Ihrer Seite ein HTML-<canvas>-Element hinzu:

<canvas id="canvas" width="400" height="400" style="background-color:#333"></canvas>

Erstellen Sie ein Canvas-Objekt (var canvas) aus dem HTML-Canvas-Element:

var canvas = document.getElementById("canvas");

Erstellen Sie ein 2D-Zeichnungsobjekt (var ctx) für das Canvas-Objekt:

var ctx = canvas.getContext("2d");

Berechnen Sie den Uhrenradius anhand der Höhe der Leinwand:

var radius = canvas.height / 2;

Durch die Verwendung der Leinwandhöhe zur Berechnung des Uhrenradius funktioniert die Uhr für alle Leinwandgrößen.

Ordnen Sie die (0,0)-Position (des Zeichenobjekts) der Mitte der Leinwand zu:

ctx.translate(radius, radius);

Reduzieren Sie den Uhrenradius (auf 90%), um die Uhr gut in die Leinwand zu zeichnen:

radius = radius * 0.90;

Erstellen Sie eine Funktion zum Zeichnen der Uhr:

function drawClock() {
  ctx.arc(0, 0, radius, 0 , 2 * Math.PI);
  ctx.fillStyle = "white";
  ctx.fill();
}