Buen día, comparto mi código de como resolví el problema de la circunferencia que va de izquierda a derecha y viceversa.
Saludos y éxito a todos.
<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 dibujarCircunferencia(x,y,radio) {
pincel.fillStyle = "blue";
pincel.beginPath();
pincel.arc(x,y,radio,0,2*Math.PI);
pincel.fill();
}
function limpiarPantalla() {
pincel.clearRect(0,0,600,400);
}
var x = 10;
function actualizarPantalla() {
limpiarPantalla();
dibujarCircunferencia((x),20,10);
x++;
console.log(x);
// Aplicando matemáticas, al llegar el centro del circulo a 590, se multiplica por -1 para generar un valor negativo igual a -590.
// Con el x++ vamos sumando una unidad a este número negativo llegando hasta -10.
if (x == 590) {
x = x*-1;
}
// Cuando el centro del círculo llega a -10, se multiplica por -1, para convertir el valor negativo en un valor positivo (tal cual el valor inicial "x = 10").
if (x == -10) {
x = x*-1;
}
// Se llama a "dibujarCircunferencia" pero en este caso "x" se multiplica por -1, ya que los valores negativos como -590, no serán visibles en el canvas, con eso se convierte a un número positivo (590) y ahora si aparece visible en el canvas.
dibujarCircunferencia((x*-1),20,10);
}
setInterval(actualizarPantalla,10);
</script>