Plátěné hodiny


V těchto kapitolách vytvoříme analogové hodiny pomocí HTML canvas.


Část I - Vytvořte plátno

Hodiny potřebují kontejner HTML. Vytvořte HTML plátno:

HTML kód:

<!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>


Kód vysvětlen

Přidejte na stránku prvek HTML <canvas>:

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

Vytvořte objekt canvas (var canvas) z elementu HTML canvas:

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

Vytvořte 2D objekt kreslení (var ctx) pro objekt canvas:

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

Vypočítejte poloměr hodin pomocí výšky plátna:

var radius = canvas.height / 2;

Použití výšky plátna k výpočtu poloměru hodin umožňuje, aby hodiny fungovaly pro všechny velikosti plátna.

Přemapujte polohu (0,0) (objektu kreslení) na střed plátna:

ctx.translate(radius, radius);

Snižte poloměr hodin (na 90 %), aby se hodiny dobře nakreslily na plátno:

radius = radius * 0.90;

Vytvořte funkci pro kreslení hodin:

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