<canvas width="600" height="600">
</canvas>
<script type="text/javascript">
//instrucciones para que javascript interactúe con canvas
var scream = document.querySelector("canvas");
var pincel = scream.getContext("2d");
//color de relleno del canvas
pincel.fillStyle = "lightblue";
pincel.fillRect(0, 0, 600, 600);
//dibuja los círculos en el canvas
function dicnarCircunferencia(x, y, radio, color){
pincel.fillStyle = color;
pincel.beginPath();
pincel.arc(x, y, radio, 0, 2*Math.PI);
pincel.fill();
}
//Borra los círculos de la pantalla
function cleanScream(x, y, largo, alto){
pincel.clearRect(x, y, largo, alto);
pincel.fillStyle = "lightgreen";
pincel.fillRect(x, y, largo, alto);
}
//variable para almacenar posición en x
var x = 0;
var orient = 1;
//función que dibuja el círculo y luego limpia la pantalla
function bolauno(){
cleanScream(0, 0, 600, 40);
if (x > 590) {
orient = -1;
}
else if(x < 5){
orient = 1;
}
dicnarCircunferencia(x, 20, 10, "red");
x = x + orient;
}
//función que dibuja el círculo y luego limpia la pantalla
function bolados(){
cleanScream(0, 50, 600, 40);
dicnarCircunferencia(x, 70, 10, "purple");
x++;
}
//función interna de js que ejecuta la instrucción en los intervalos definidos
setInterval(bolauno, 100);
document.write("<br>");
document.write("<br>");
setInterval(bolados, 500);
</script>
La function bolados() la incluí para comparar las trayectorias de los círculos, pero cuando se ejecuta el código ambas esferas avanzan y regresan y no programe la segunda esfera para hacer eso.