Canvas Clock Face






<!--
main_leaderboard, all: [728,90][970,90][320,50][468,60]
-->



Canvas Clock Face



❮ Previous
Next ❯



Part II - Draw a Clock Face


The clock needs a clock face. Create a JavaScript function to draw a clock face:





JavaScript:



function drawClock() {
    drawFace(ctx, radius);
}

function drawFace(ctx, radius) {
    var grad;

    ctx.beginPath();
    ctx.arc(0, 0, radius, 0, 2*Math.PI);
    ctx.fillStyle = 'white';
    ctx.fill();

    grad = ctx.createRadialGradient(0,0,radius*0.95, 0,0,radius*1.05);
    grad.addColorStop(0, '#333');
    grad.addColorStop(0.5, 'white');
    grad.addColorStop(1, '#333');
    ctx.strokeStyle = grad;
    ctx.lineWidth = radius*0.1;
    ctx.stroke();

    ctx.beginPath();
    ctx.arc(0, 0, radius*0.1, 0, 2*Math.PI);
    ctx.fillStyle = '#333';
    ctx.fill();
}

Try it Yourself »



var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var radius = canvas.height/2;
ctx.translate(radius, radius);
radius = radius*0.90
drawClock(ctx, radius);
function drawClock(ctx, radius) {
drawFace(ctx, radius);
}





<!--
mid_content, all: [300,250][336,280][728,90][970,250][970,90][320,50][468,60]
-->





Code Explained


Create a drawFace() function for drawing the clock face:




function drawClock() {
    drawFace(ctx, radius);
}

function drawFace(ctx, radius) {
}


Draw the white circle:




ctx.beginPath();
ctx.arc(0, 0, radius, 0, 2*Math.PI);
ctx.fillStyle = 'white';
ctx.fill();


Create a radial gradient (95% and 105% of original clock radius):




grad = ctx.createRadialGradient(0,0,radius*0.95, 0,0,radius*1.05);


Create 3 color stops, corresponding with the inner, middle, and outer edge of
the arc:




grad.addColorStop(0, '#333');
grad.addColorStop(0.5, 'white');
grad.addColorStop(1, '#333');




The color stops create a 3D effect.




Define the gradient as the stroke style of the drawing object:




ctx.strokeStyle = grad;


Define the line width of the drawing object (10% of radius):




ctx.lineWidth = radius * 0.1;



Draw the circle:




ctx.stroke();



Draw the clock center:




ctx.beginPath();
ctx.arc(0, 0, radius*0.1, 0, 2*Math.PI);
ctx.fillStyle = '#333';
ctx.fill();





❮ Previous
Next ❯

Popular posts from this blog

How to check contact read email or not when send email to Individual?

Christian Cage

How to properly install USB display driver for Fresco Logic FL2000DX on Ubuntu?