1
respuesta

Mi version

<canvas width="600" height="400"></canvas>

<script>
    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');

    pincel.fillStyle = 'grey';
    pincel.fillRect(0, 0, 600, 400);

    var puedoDibujar = false;
    let arrColor = ["red", "green", "blue"];
    let n=0;    // color inicio arrColor[0] = 'red'

    function dibujarCuadrado(x, y, color) {
        pincel.fillStyle = color;
        pincel.fillRect(x, y, 50, 50);
    }

    dibujarCuadrado(0, 0, "red");
    dibujarCuadrado(50, 0, "green");
    dibujarCuadrado(100, 0, "blue");

    function dibujarCirculo(evento) {
        if (puedoDibujar) {
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;
            pincel.fillStyle = arrColor[n];
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
        }
    } // dibujarCirculo

    function elegirColor(evento){
        let t=n;   // guarda el color activo antes de cambiarlo
        let x = evento.pageX - pantalla.offsetLeft;
        let y = evento.pageY - pantalla.offsetTop;
        if(y<50){
            if (x<50) n=0;
            else if (x<100) n=1;
            else if (x<150) n=2;
            else n=t;   // recupera el color de inicio si no cambió color
        } else {   // dibuja la paleta de colores por si son pintados por otro color
            dibujarCuadrado(0, 0, "red");
            dibujarCuadrado(50, 0, "green");
            dibujarCuadrado(100, 0, "blue");
        }
    } // elegirColor

    pantalla.onmousemove = dibujarCirculo;
    pantalla.onclick = elegirColor;

    function habilitarDibujar() {
        puedoDibujar = true;
    }

    function deshabilitarDibujar() {
        puedoDibujar = false;
    }

    pantalla.onmousedown = habilitarDibujar;

    pantalla.onmouseup = deshabilitarDibujar;

</script>
1 respuesta

Hola Leonardo, espero que estés bien!

Gracias por compartir tu código con nosotros, nos alegra mucho que estés practicando programación, la práctica es fundamental para consolidar tus nuevos conocimientos.

Te recomiendo que compartas la solución de tus ejercicios en nuestro servidor de Discord, ahí tenemos un canal exclusivo para esto #comparteTuCodigo, también puedes usar Linkedin para hacer esto, ya que el alcance es mayor y tu publicación puede llegar a más personas. Otra forma de guardar tus ejercicios es a través de Github, así a medida que avances podrás ir construyendo tu portafolio y en este caso el foro sería solo para aclarar cualquier duda que puedas tener sobre el contenido de los cursos.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios