Las vueltas son las que dejan dicen por acá.
<canvas width="600" height="400"></canvas>
<script>
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
pincel.fillStyle = "lightgrey";
pincel.fillRect(0,0,600,400);
function disenarCircunferencia(x,y,radio){
pincel.fillStyle = "blue";
pincel.beginPath();
pincel.arc(x,y,radio,0,2*Math.PI);
pincel.fill();
}
function limpiar(){
pincel.clearRect(0,0,600,400);
}
var x = 0;
var extremo = "izquierda";
function actualizarPantalla(){
if(x<600 && extremo == "izquierda"){
limpiar();
disenarCircunferencia(x,20,10);
x++;
}else{
extremo = "derecha";
}
if( x>0 && extremo == "derecha"){
limpiar();
disenarCircunferencia(x,20,10);
x--;
}else{
extremo = "izquierda";
}
}
setInterval(actualizarPantalla,3);
</script>