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

Mi solucion [Cuadro para pintar]

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Pincel</title>
</head>

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

    <script>
        var pantalla = document.querySelector('canvas');
        var pincel = pantalla.getContext('2d');
        var puedoDibujar = false;
        var colores = ["blue", "red", "green"];
        var indicador = 0;
        // creamos el cuadro para pintar
        pincel.fillStyle = 'grey';
        pincel.fillRect(0, 0, 600, 400);
        // creamos la paleta de colores azul, rojo y verde
        dibujarPaletaColores();

        // iniciamos controladores para cada accion que se realice
        pantalla.onclick = detectarClickPaleta;
        pantalla.onmousemove = capturarMovimientoDelMouse;
        pantalla.onmousedown = habilitarDibujar;
        pantalla.onmouseup = deshabilitarDibujar;

        function capturarMovimientoDelMouse(evento){
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;
            if (puedoDisenharArea(x,y)) {
                dibujarCirculo(x,y);
            }
        }

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

        }

        function detectarClickPaleta(evento) {
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;

            console.log("detectarPaleta (" + x + "," + y + ")");
            if (x > 0 && x <= 50 && y > 0 && y <= 50) {
                indicador = 0;

            }
            else if (x > 50 && x <= 100 && y > 0 && y <= 50) {
                indicador = 1;
            }
            else if (x > 100 && x <= 150 && y > 0 && y <= 50) {
                indicador = 2;
            }
        }

        /* Esta funcion sirve para delimitar el area en cual tiene o no permiso de pintar */
        function puedoDisenharArea(coorX, coorY) {
            if ((coorX >= 0 && coorX <= 152) && (coorY >= 0 && coorY <= 53)) {
                return false;
            } else {
                return true;
            }
        }

        function dibujarCirculo(x,y) {
            if (puedoDibujar) {
                pincel.fillStyle = colores[indicador];
                pincel.beginPath();
                pincel.arc(x, y, 5, 0, 2 * Math.PI);
                pincel.fill();
            }
        }

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

        function habilitarDibujar() {

            puedoDibujar = true;
        }

        function deshabilitarDibujar() {

            puedoDibujar = false;
        }

    </script>


</body>

</html>
1 respuesta

¡Hola Javier! ¡Deseo que estés bien!

¡Muchas Felicidades!

¡Gracias por compartir tu código con nosotros! Nos alegra mucho ver tu avance en las prácticas, éstas te darán un mayor fundamento en el aprendizaje. ¡Continua con ese mismo entusiasmo y no te desanimes!

En lo esencial, para agilizar el tiempo de respuesta que damos a ustedes, estamos priorizando el foro para postear las dudas como: errores, bugs y cualquier otro problema referente a los cursos.

En cambio, si deseas compartir tu código, ideas o actividades dispusimos en Discord un canal exclusivo para ese fin (⛓┇comparte-tu-codigo-logica) Allí, tus compañeros de estudios podrán ayudarte compartiendo conocimientos. ¡Esta interacción es muy importante para la participación de los alumnos y puede ayudarte a expandir tu red de contactos!

Te dejo éste link que muestra donde puedes compartir tus actividades

¡Te deseo mucho éxito en tus estudios! y recuerda que aquí estaremos para apoyarte!

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