4
respostas

Desenhando com o mouse

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

<script>

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");

    pincel.fillStyle = "gray";
    pincel.fillRect(0,0,600,400);

    function desenhaCirculo(evento) {

        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();

    }

    if(onmousedown) {

        tela.onmousemove = desenhaCirculo;

    }

    </script>
4 respostas

Pessoal, na resolução do professor ele cria duas funções... não entendi porque não da certo apenas dom IF sendo que a condição é desenhar o circulo com o botão esquerdo pressionado enquanto mexemos o mouse.

Obrigada :)

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

<script>

    var tela = document.querySelector("canvas");
    var pincel = tela.getContext("2d");

    pincel.fillStyle = "gray";
    pincel.fillRect(0,0,600,400);

    function desenhaCirculo(evento) {

        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();

    }

   ~~if(onmousedown) {~~

        tela.onmousemove = desenhaCirculo;
    ~~}~~


    **function habilitaDesenhar() {

        desenha = true;
    }

    function desabilitaDesenhar() {

        desenha = false;
    }

    tela.onmousedown = habilitaDesenhar;

    tela.onmouseup = desabilitaDesenhar;**


    </script>

duas funções ele acrescenta, da olhada e testa.

O if e para capturar a posição do movimento do mouse e as funções para detectar se deve ou não continuar a desenhar o circulo continuo(false e true) habilita e desabilita.

Pelo menos foi o meu entendimento. Mas existe outras maneiras de se fazer a mesma coisa , o importante e ver a logica dos código e a fácil leitura.

Tambem não consegui, estou tentando e não vou abrir a solução do professor ainda.

Edição: Agora entendi, lendo algumas duvidas aqui do fórum encontrei a solução para o meu código e aprendi como usar o onmousemove. Obrigado galera! Agora vou lá abrir a solução do professor e comparar. :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software