1
resposta

Porque uso a mesma função desenhar circulo para poder fazer um desenho livre na tela?

O que não entendi neste código é o porque a função para desenhar um desenho livre na tela é igual a função desenha circulo?

Se o desenho é livre porque colocamos pincel.arc(x, y, 10, 0, 2 * 3.14)?

Também não entendo direito o porque tem que se colocar o parâmetro evento na função e o que é exatamente "evento.pageX" e "evento.pageY". Trata-se de APIs?

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

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

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

    var desenha = false;

  // atribuindo diretamente a função anônima
   tela.onmousemove = function(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);
    }

    tela.onmousedown = function() {

        desenha = true;
    }

     tela.onmouseup = function() {

        desenha = false;
    }

</script>
1 resposta

Boa tarde, Bruna! Como vai?

Vamos lá às respostas de suas perguntas!

O que não entendi neste código é o porque a função para desenhar um desenho livre na tela é igual a função desenha circulo? Se o desenho é livre porque colocamos pincel.arc(x, y, 10, 0, 2 * 3.14)?

É assim por escolha do instrutor! Se vc quisesse utilizar outra forma geométrica para o desenho, seria somente substituir o desenho do círculo pela forma escolhida por vc!

Também não entendo direito o porque tem que se colocar o parâmetro evento na função e o que é exatamente "evento.pageX" e "evento.pageY". Trata-se de APIs?

O parâmetro evento traz informações relativas ao evento que aconteceu! Sendo assim, evento.pageX e evento.pageY são as coordenadas X e Y do evento que ocorreu ( nesse caso, a movimentação do mouse )!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, minha aluna!

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