1
respuesta

Dibujando con el Mouse

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

<script>
    var pantalla = document.querySelector('canvas');
    var pincel = pantalla.getContext('2d');
    var colores = ["blue", "red", "green"];
    var posicionColor = 0;

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

    var puedoDibujar = false;

    function dibujarCirculo(evento) {

        if (puedoDibujar) {
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;
            pincel.fillStyle = colores[posicionColor];

            if (x >= 0 && x <= 55 && y >= 0 && y <= 165) {
                puedoDibujar = false;
            }
            else {
                puedoDibujar = true;
                pincel.beginPath();
                pincel.arc(x, y, 5, 0, 2 * 3.14);
                pincel.fill();
            }
        }
    }

    function habilitarDibujar(evento) {

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

        if (x >= 0 && x <= 55 && y >= 0 && y <= 165) {
            puedoDibujar = false;
        }
        else {
            puedoDibujar = true;
        }
    }

    function deshabilitarDibujar() {
        puedoDibujar = false;
    }

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

        if (x >= 0 && x <= 55 && y >= 0 && y <= 55) {
            posicionColor = 0;
        } else if (x >= 0 && x <= 55 && y >= 56 && y <= 120) {
            posicionColor = 1;
        } else if (x >= 0 && x <= 55 && y >= 121 && y <= 165) {
            posicionColor = 2;
        }
    }

    pantalla.onclick = cambiarColor;

    function paleta() {
        var y = 0, tamanhoPaleta = 55;
        for (var i = 0; i < colores.length; i++) {
            pincel.beginPath();
            pincel.fillStyle = colores[i];
            pincel.fillRect(0, y, tamanhoPaleta, tamanhoPaleta);
            pincel.fillStyle = "black";
            pincel.strokeRect(0, y, tamanhoPaleta, tamanhoPaleta);
            y += tamanhoPaleta;
        }
    }

    paleta();

    pantalla.onmousemove = dibujarCirculo;

    pantalla.onmousedown = habilitarDibujar;

    pantalla.onmouseup = deshabilitarDibujar;

</script>
1 respuesta

Hola Luis

Gracias por compartir tu código, está muy bien felicitaciones.

Si tienes alguna pregunta sobre el contenido de los cursos, estaremos aquí para ayudarte.

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