Effacement de lignes précédemment dessinées sur une toile HTML5

De jouer avec HTML5 canvas, j'ai décidé de faire une application qui dessine un analogique affichage du cadran. Tout va bien, sauf que les vieux ne sont pas effacées de la manière que je m'attends. J'ai inclus une partie du code ci-dessous - DrawHands() est appelée une fois par seconde:

var hoursPoint = new Object();
var minutesPoint = new Object();
var secondsPoint = new Object();

function drawHands()
{
    var now = new Date();

    drawLine(centerX, centerY, secondsPoint.X, secondsPoint.Y, "white", 1);
    var seconds = now.getSeconds();
    secondsPoint = getOtherEndOfLine(centerX, centerY, 2 * Math.PI / 60 * seconds, 0.75 * radius);
    drawLine(centerX, centerY, secondsPoint.X, secondsPoint.Y, "black", 1);

    drawLine(centerX, centerY, minutesPoint.X, minutesPoint.Y, "white", 3);
    var minutes = now.getMinutes();
    minutesPoint = getOtherEndOfLine(centerX, centerY, 2 * Math.PI / 60 * minutes, 0.75 * radius);
    drawLine(centerX, centerY, minutesPoint.X, minutesPoint.Y, "black", 3);

    drawLine(centerX, centerY, hoursPoint.X, hoursPoint.Y, "white", 3);
    var hours = now.getHours();
    if (hours >= 12) { hours -= 12; } //Hours are 0-11
    hoursPoint = getOtherEndOfLine(centerX, centerY, (2 * Math.PI / 12 * hours) + (2 * Math.PI / 12 / 60 * minutes), 0.6 * radius);
    drawLine(centerX, centerY, hoursPoint.X, hoursPoint.Y, "black", 3);
}

À faire sens de ce qui précède, il y a deux fonctions d'aide:

  • drawLine(x1, y1, x2, y2, couleur, épaisseur)
  • getOtherEndOfLine(x, y, angle, longueur)

Le problème est que, bien que toutes les mains dessinés comme prévu dans le noir, ils ne sont jamais effacés. Je m'attends à ce que, depuis la même ligne est tracée en blanc (la couleur du fond), il serait effectivement effacer ce qui a été précédemment établi à ce point. Mais cela ne semble pas être le cas.

Rien de ce que je suis absent?

source d'informationauteur Saqib