Het maken van een analoge klok met HTML5-canvas omvat de volgende stappen:
1. Maak een canvas:
- Begin met het maken van een HTML5-canvaselement. U kunt dit doen door de volgende code aan uw HTML-document toe te voegen:
```html
```
2. Haal de canvascontext op:
- Vervolgens moet u de canvascontext verkrijgen, waarmee u op het canvas kunt tekenen. U kunt hiervoor de methode `getContext()` gebruiken.
```javascript
var canvas =document.getElementById("klok");
var ctx =canvas.getContext("2d");
```
3. Teken de wijzerplaat:
- Begin met het tekenen van de wijzerplaat door de vulstijl en lijndikte in te stellen. Teken vervolgens een cirkel voor de wijzerplaat.
```javascript
// Stel de vulstijl en lijndikte in
ctx.fillStyle ="wit";
ctx.strokeStyle ="zwart";
ctx.lineWidth =10;
// Teken de wijzerplaat
ctx.beginPath();
ctx.arc(200, 200, 150, 0, 2 * Math.PI);
ctx.fill();
ctx.slag();
```
4. Kloknummers toevoegen:
- Vervolgens moet u cijfers rond de wijzerplaat toevoegen. U kunt dit doen door de methode `fillText()` te gebruiken.
```javascript
// Stel het lettertype en de tekstuitlijning in
ctx.font ="vet 20px Arial";
ctx.textAlign ="gecentreerd";
// Voeg de kloknummers toe
voor (var i =1; ik <=12; i++) {
var hoek =(i * 30) * Math.PI / 180;
var x =200 + Math.cos(hoek) * 130;
var y =200 + Math.sin(hoek) * 130;
ctx.fillText(i, x, y);
}
```
5. Teken wijzers:
- Om de wijzers te tekenen, moet je de hoeken en lengtes berekenen op basis van de huidige tijd.
```javascript
// Haal de huidige tijd op
var datum =nieuwe datum();
var uren =date.getHours();
var minuten =date.getMinutes();
var seconden =date.getSeconds();
// Bereken de hoeken en lengtes van de handen
var hourAngle =(uren % 12 + minuten / 60) * 30 * Math.PI / 180;
var minuteAngle =(minuten + seconden / 60) * 6 * Math.PI / 180;
var secondAngle =(seconden) * 6 * Math.PI / 180;
var uurHandLengte =80;
var minuutHandLengte =120;
var secondelengte =140;
// Teken de uurwijzer
ctx.beginPath();
ctx.moveTo(200, 200);
ctx.lineTo(
200 + Math.cos(uurhoek) * uurHandLengte,
200 + Math.sin(uurHoek) * uurHandLengte
);
ctx.slag();
// Teken de minutenwijzer
ctx.beginPath();
ctx.moveTo(200, 200);
ctx.lineTo(
200 + Math.cos(minuteAngle) * minuteHandLength,
200 + Math.sin(minuteAngle) * minuteHandLength
);
ctx.slag();
// Teken de secondewijzer
ctx.beginPath();
ctx.moveTo(200, 200);
ctx.lineTo(
200 + Math.cos(secondAngle) * secondHandLength,
200 + Math.sin(secondAngle) * secondHandLength
);
ctx.slag();
```
6. Animeer de klok:
- Om de klok te animeren, kunt u de functie `setInterval()` gebruiken om de posities van de wijzers elke seconde bij te werken.
```javascript
// Update de klok elke seconde
setInterval(functie() {
// Haal de huidige tijd op
var datum =nieuwe datum();
var uren =date.getHours();
var minuten =date.getMinutes();
var seconden =date.getSeconds();
// Bereken de hoeken en lengtes van de handen
var hourAngle =(uren % 12 + minuten / 60) * 30 * Math.PI / 180;
var minuteAngle =(minuten + seconden / 60) * 6 * Math.PI / 180;
var secondAngle =(seconden) * 6 * Math.PI / 180;
// Teken de wijzers
ctx.clearRect(0, 0, 400, 400); // Maak het canvas leeg
tekenklokgezicht(); // Teken de wijzerplaat
addClockNumbers(); // Kloknummers toevoegen
drawClockHands(uurhoek, minuuthoek, secondehoek); // Teken de wijzers
}, 1000); // Update de klok elke 1000 milliseconden (1 seconde)
```
Deze code creëert een functionele analoge klok die in realtime wordt bijgewerkt. U kunt de kleuren, lettertypen en wijzerlengtes van de wijzerplaat aanpassen om verschillende ontwerpen te maken. |