Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

¡Ya que va, que vuelva!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>¡Ya que va, que vuelva!</title>
</head>
<body>

    <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+= sentido;
        }


            setInterval(actualizarPantalla,100);  


    </script>  
</body>
</html>
1 respuesta

Este código recorre todo el perímetro del canvas (600, 400):

<meta charset="UTF-8"> 
<!-- Canvas: se trata de una "lienzo" en blanco donde se pueden crear formas, líneas, curvas, texto, imágenes 
y mucho más -->
<canvas width="600" height="400"> </canvas>

<script>
    // llamar el objeto canvas y luego el contexto de ese objeto
    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");   

    // crear un cuadro de color gris claro
    pincel.fillStyle = "lightgrey"; // fillStyle: asigna un color de relleno
    pincel.fillRect(0,0,600,400);   // fillRect: crea un rectangulo

    function diseñarCircunferencia(x,y,radio){
        pincel.fillStyle = "blue";
        pincel.beginPath();         //beginPath: método que se utiliza para comenzar un nuevo trazo en un objeto Canvas
        pincel.arc(x,y,radio,0,2*Math.PI);
        pincel.fill();
    }

    // funcion para que el circulo recorra el perimetro del canvas
    let x = 20
    let y = 20
    function actualizarPantalla(){
        pincel.fillStyle = "lightgrey";
        pincel.fillRect(0,0,600,400); 
        diseñarCircunferencia(x,y,10);
        if(x <= 580 && y == 20) { x++; }
        if(x == 580 && y <= 380){ y++; }
        if(x >= 20 && y == 380) { x--; }
        if(x == 20 && y >= 20)  { y--; }
    }
    //setTimeout(actualizarPantalla, 10); // llama a una función después de un retraso de tiempo específico. solo una vez
    setInterval(actualizarPantalla,  1) // llama a una función repetidamente después de un intervalo de tiempo específico

</script>