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

[Proyecto] Diseñando con el mouse

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=<canvas width="600" height="400"></canvas> 
    <title> Diseñando con el mouse</title>
</head>
<body>
    <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>
</body>
</html>
1 respuesta

Hola Walter, espero que estés bien.

Te felicito por los avances en los estudios en Lógica de programación y deseo que obtengas éxito en todo lo que te propongas.

Para agilizar el tiempo de respuesta en caso de dudas relacionadas con los cursos, estamos priorizando el foro para postear dudas. Por favor, recuerda utilizar las etiquetas para indicarnos si tu consulta es una duda, sugerencia o cualquier otro tema. De esta manera, podremos filtrar y procesar las dudas y consultas de manera más eficiente, mejorando aún más nuestro desempeño y tiempo de respuesta.

En caso de que desees compartir tus ejercicios o comentarios, dispusimos en Discord un canal exclusivo para ese fin.

Te dejo este link que muestra como puedes compartir tus dudas y si necesitas ayuda acerca del contenido de los cursos, aquí estaremos. :)

¡Saludos!

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