Effacer Canvas Rect (mais conserver l'arrière-plan)

Je suis en train d'animer un cercle et il suffit de le déplacer horizontalement qui fonctionne très bien. Cependant, alors que le cercle est en mouvement, je dois faire un clearRect plus que le cercle de sorte qu'il redessine auto dans le sens horizontal. Quand je fais un clearRect il rend également le fond blanc de la boîte autour de sorte que effectivement sa va être une ligne blanche horizontale dans la direction que le cercle est en mouvement.

  1. Est-il un moyen pour effacer le cercle sans clearRect?
  2. Si je dois garder de redessiner l'arrière-plan après clearRect la toile se met à clignoter lorsque theres dire 10 cercles en mouvement dans cette zone.

D'autres façons de résoudre ce problème?

    function drawcircle() {
        clear();    

        context.beginPath();
        context.arc(X, Y, R, 0, 2*Math.PI, false);                  
        context.moveTo(X,Y);            
        context.lineWidth = 0.3;
        context.strokeStyle = "#999999"; 
        context.stroke();

        if (X > 200)
        {
            clearTimeout(t); //stop
        }
        else
        {
            //move in x dir
            X += dX;
            t = setTimeout(drawcircle, 50);
        }
    }

    function clear() {
        context.clearRect(X-R, Y-R, 2*R, 2*R);
    }

source d'informationauteur fes