1
resposta

Desenhando com o Mouse - minha resolução com as explicações

<script>
    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');

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

    var desenha = false;

    function desenhaCirculo(evento) {

        if(desenha) {
            var x = evento.pageX - tela.offsetLeft;
            var y = evento.pageY - tela.offsetTop;
            pincel.fillStyle = 'blue';
            pincel.beginPath();
            pincel.arc(x, y, 10, 0, 2 * 3.14);
            pincel.fill();
            console.log(x + ',' + y);

        }
    }

    // O evento do JavaScript que permite capturar o movimento do mouse, e logo sua coordenada
    tela.onmousemove = desenhaCirculo; // sem desenhar,só printando o círculo, tela.onclick = desenhaCirculo

    function habilitaDesenhar() {

        desenha = true;
    }

    function desabilitaDesenhar() {

        desenha = false;
    }

    // Existem os eventos, onmousedown e onmouseup. O primeiro é disparado toda vez que o botão esquerdo do mouse é pressionado e o segundo quando ele é solto.
    tela.onmousedown = habilitaDesenhar; // seria o mesmo que dizer que  tela.onmousedown = true, mas é na função que definimos a variáve desenha!

    tela.onmouseup = desabilitaDesenhar; // ou tela.onmousedown = false;

    // Se eu clico com o botão esquerdo do mouse, aparece o menu e mesmo depois dele sair, posso continuar a desenhar.
    // Se eu clico com o botão direito do mouse, posso começar a desenhar.
</script>
1 resposta

Bom dia!

Sua resolução ficou excelente! Você fez um ótimo uso do aprendizado.

Parabéns pelo empenho nos estudos e continue praticando.

Para que mais pessoas consigam visualizar a sua solução proposta, é recomendado que você marque este tópico como solucionado. Assim pode ajudar ainda mais pessoas :)

Bons estudos!