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

[Sugerencia] Diseñando con el mouse

<meta charset="UTF- 8">


<h1 style="color: darkblue;">PROGRAMA DISEÑANDO</h1>
<h3 style="color: darkred;">Escoge tu color y pinta</h3>

<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;

    //Variables para dibujar la paleta
    var xRojo = 0;
    var xVerde = 50;
    var xAzul = 100;
    var yCuadrados = 0;
    var tamanhoCuadrados = 50;
    var colorActual = "blue";

    function dibujarCirculo(x, y, colorActual) {

        if (puedoDibujar) {

            pincel.fillStyle = colorActual;
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();

        }
    }

    //Función para dibujar cada uno de los cuadrados de la paleta
    function dibujarCuadrado(x, y, tamanho, color) {

        pincel.fillStyle = color;
        pincel.fillRect(x, y, tamanho, tamanho)
        pincel.fill();

    }

    //Función para dibujar la paleta de colores
    function dibujarPaletaColores() {

        dibujarCuadrado(xRojo, yCuadrados, tamanhoCuadrados, 'red');
        dibujarCuadrado(xVerde, yCuadrados, tamanhoCuadrados, 'green');
        dibujarCuadrado(xAzul, yCuadrados, tamanhoCuadrados, 'blue');

    }

    function habilitarDibujar() {

        puedoDibujar = true;

    }

    function deshabilitarDibujar() {

        puedoDibujar = false;

    }

    //Función para delimitar el área
    function puedeDisenharArea(xCoordenada, yCoordenada) {

        if ((xCoordenada >= 0 && xCoordenada < (3 * tamanhoCuadrados + 5)) &&
            (yCoordenada >= 0 && yCoordenada < (tamanhoCuadrados + 5))) {

            return false;

        } else {

            return true;

        }

    }

    function capturarMovimientoDelMouse(evento) {

        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;

        if (puedeDisenharArea(x, y)) {

            dibujarCirculo(x, y, colorActual);

        }

    }

    function seleccionarColor(evento) {

        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;

        //Cada condición altera el color de la variable colorActual

        //Comenzamos por la condición del eje Y que es común para todas
        if (y > yCuadrados && y < (yCuadrados + tamanhoCuadrados)) {

            if (x > xRojo && x < (xRojo + tamanhoCuadrados)) {

                colorActual = "red";
                console.log(colorActual);

            } else if (x > xVerde && x < (xVerde + tamanhoCuadrados)) {

                colorActual = "green";

            } else if (x > xAzul && x < (xAzul + tamanhoCuadrados)) {

                colorActual = "blue";

            }


        }


    }

    pantalla.onmousemove = capturarMovimientoDelMouse;

    pantalla.onmousedown = habilitarDibujar;

    pantalla.onmouseup = deshabilitarDibujar;

    dibujarPaletaColores();

    pantalla.onclick = seleccionarColor;


</script>
1 respuesta

¡Hola Israelbasurtosanchez!

Gracias por compartir tu código con nosotros.

En general, el código se ve bien estructurado y fácil de entender. Me gusta cómo utilizas funciones para separar las diferentes tareas que realiza el programa. También es útil que hayas incluido comentarios para explicar lo que hace cada parte del código.

Si quieres continuar practicando, podrías agregar una función para borrar el dibujo anterior y comenzar de nuevo.

¡Deseamos que puedas cumplir con todos tus objetivos y tener éxito en tus estudios, saludos!

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