Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

[Duda] No entiendo la variable SENTIDO, me pueden explicar?

<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 disenharCircunferencia(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 = 0
    var sentido = 1;

    function actualizarPantalla(){

        limpiarPantalla();
        if(x > 600){
            sentido = -1;
        }
        else if(x < 0){
            sentido = 1;
        }
        disenharCircunferencia(x,20,10);
        x = x + sentido;
    }
      setInterval(actualizarPantalla,10);

</script> 
4 respuestas
solución!

La variable "sentido" es un contador que nos ayuda a darle movimiento a 'x' así llegado a los topes "0" ó "600" solo cambia de ser negativo a ser negativo positivo.

"Sentido" solo juega con un cambio de 1 y -1 pero funciona como un contador sumandole a 'x', dándole movimiento hasta llegar a sus límites 0 y 600 en el plano de x. Saludos.

Gracias Miguel Alfredo, me queda más claro.

excelente miguel

hola compañero analizando su codigo tengo una pregunta 1- en el primer IF que es para devolver el circulo cuando llegue a 600, pero al ir decrementando la variable X y llegar a 599 ya no se te cumpliria la condicion ? 2- en el segundo condicional IF igual para correr el circulo de izquierda a derecha tu colocas la condicional que la variable X sea menor 0 y en mi logica si la variable X se va incrementando, no se cumpliria la condicional ya que seria la variable X mayor que 0?

compañero disculpe la ignorancia pero estoy confundido, cabe resaltar que su codigo funciona perfectamente.

 if(x > 600){
            sentido = -1;
        }
        else if(x < 0){
            sentido = 1;
        }
        disenharCircunferencia(x,20,10);
        x = x + sentido;