2
respuestas

La forma más corta de hacerlo

<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);
    //cuadrados de colores
    pincel.fillStyle = 'red';
    pincel.fillRect(0, 0, 50, 50);
    pincel.fillStyle = 'green';
    pincel.fillRect(50, 0, 50, 50);
    pincel.fillStyle = 'blue';
    pincel.fillRect(100, 0, 50, 50);

    var puedoDibujar = false;
    var colorcirc = "blue";

    function dibujarCirculo(evento) {

        if(puedoDibujar) {
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;
            if(y<50){
                if(x<50){
                    colorcirc="red";
                   }
                   else if (x<100){
                    colorcirc="green";
                   }
                        else if (x<150){
                            colorcirc="blue";
                        }
                }
            pincel.fillStyle = colorcirc;
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
        //redibujar los cuadrados
            pincel.fillStyle = 'red';
            pincel.fillRect(0, 0, 50, 50);
            pincel.fillStyle = 'green';
            pincel.fillRect(50, 0, 50, 50);
            pincel.fillStyle = 'blue';
            pincel.fillRect(100, 0, 50, 50);
        }

    }

    pantalla.onmousemove = dibujarCirculo;

    function habilitarDibujar() {

        puedoDibujar = true;
    }

    function deshabilitarDibujar() {

        puedoDibujar = false;
    }

    pantalla.onmousedown = habilitarDibujar;

    pantalla.onmouseup = deshabilitarDibujar;



</script>
2 respuestas

Es más pesado pero funciona igual

Es mucho mas corto, y funciona de maravilla. Yo lo probe. Gracias por tu aporte