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

Dibujar con paleta de colores...

Les comparto mi código

<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;
    var colorElegido = "blue";

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

    pantalla.onmousemove = dibujarCirculo;

    function habilitarDibujar(evento) {
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;
        if (!restringirAreaPaleta(x,y)) {
            puedoDibujar = true;
        }
    }

    function deshabilitarDibujar() {
       puedoDibujar = false;
    }


    var paletaColores = ["red", "green", "blue"];
    var ubicacionInicioPaletaX = 0;
    var ubicacionInicioPaletaY = 0;
    var anchoColorPaleta = 50;
    var altoColorPaleta = 50;

    function restringirAreaPaleta(x,y) {
        return ((x > ubicacionInicioPaletaX) && (x < anchoColorPaleta * (paletaColores.length)) && (y > ubicacionInicioPaletaY) && (y < altoColorPaleta));
     } 

    function dibujarCuadrados(colores) {
        var ubicacionCuadrado = ubicacionInicioPaletaX;
        for (var index = 0; index < colores.length; index ++) {
            pincel.fillStyle = colores[index];
            pincel.fillRect(ubicacionCuadrado,0,anchoColorPaleta,altoColorPaleta);
            ubicacionCuadrado = ubicacionCuadrado + anchoColorPaleta;
        }
    }

    function seleccionarColor(evento) {
        var ubicacionCuadrado = 0;
       for (var index = 0; index < paletaColores.length; index ++) {
            var clickX = evento.pageX - pantalla.offsetLeft;
            var clickY = evento.pageY - pantalla.offsetTop;

           if ((clickX > ubicacionCuadrado) && (clickX < ubicacionCuadrado + anchoColorPaleta) && (clickY > ubicacionInicioPaletaY) && (clickY < altoColorPaleta)) {
            colorElegido = paletaColores[index];
            break;
           }
           ubicacionCuadrado = ubicacionCuadrado + anchoColorPaleta;
       }
    }

    dibujarCuadrados(paletaColores);
    pantalla.onclick = seleccionarColor;

    pantalla.onmousedown = habilitarDibujar;
    pantalla.onmouseup = deshabilitarDibujar;

</script>
1 respuesta

Hola Martin, espero que estés bien.

Me alegro de que estés disfrutando del curso y de que hayas estado resolviendo y practicando lo que aprendiste. Es importante trabajar y aplicar lo que se está aprendiendo para poder progresar y adquirir nuevas habilidades. También es valioso dejar evidencia de tu trabajo y compartir tus dudas y preguntas con el resto del grupo de alumnos, ya que esto puede ayudar a aclarar conceptos y mejorar tu comprensión del material. ¡Sigue adelante y sigue disfrutando del curso! Estoy seguro de que continuarás haciendo grandes progresos.

Te recomiendo que compartas la solución de tus ejercicios en nuestro servidor de Discord, allí tenemos un canal exclusivo para eso (#compartatucodigo). Allá podrás tener más interacciones con otros Alumnos, Instructores y la comunidad en general.

Si tienes alguna duda, no dejes de preguntar. ¡Estamos aquí para ayudarte!.

¡Saludos!

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