Холст Часы


В этих главах мы создадим аналоговые часы, используя холст HTML.


Часть I. Создание холста

Часы нуждаются в HTML-контейнере. Создайте HTML-холст:

HTML-код:

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


Объяснение кода

Добавьте HTML-элемент <canvas> на свою страницу:

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

Создайте объект холста (var canvas) из элемента холста HTML:

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

Создайте 2D-объект рисования (var ctx) для объекта холста:

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

Рассчитайте радиус часов, используя высоту холста:

var radius = canvas.height / 2;

Используя высоту холста для расчета радиуса часов, часы работают для всех размеров холста.

Переназначьте положение (0,0) (объекта рисования) в центр холста:

ctx.translate(radius, radius);

Уменьшите радиус часов (до 90%), чтобы хорошо отобразить часы внутри холста:

radius = radius * 0.90;

Создайте функцию для рисования часов:

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