Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Por que minha bolinha fica menor que 10?

Mesmo colocando raio >=10 a bolinha continua a diminuir, por que isso acontece? Código:


<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 raio = 10

    function desenhaBolinha(evento) {

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

        if (evento.shiftKey && raio <= 40) {
             raio += 10;           
        }

        if (evento.altKey && raio >= 10) {
             raio -= 5;           
        }

        pincel.fillStyle = 'blue';
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * 3.14 )
        pincel.fill()

    }

    tela.onclick = desenhaBolinha
</script>
9 respostas
solução!

Olá Henrique, tudo bem? Na verdade, ela diminui apenas mais uma vez e fica com o raio igual a 5.

Se você quer que ela pare em um raio igual a 10 você deve elaborar a lógica assim:

  if (evento.altKey && raio > 10) {
             raio -= 5;           
  }

Até mais, Marcus.

Na resolução do instrutor (clicando em Opinião do Instrutor), ele condicionou o "if de diminuição" da seguinte forma:

        } else if(evento.altKey && raio - 5 >= 10) {
            raio = raio - 5;

Observe que a bolinha vai diminuir mesmo se o raio for igual a 10, por conta do sinal ' = '. E segundo as regras do exercício o raio da bolinha não poderia ser inferior a 10. Ele cometeu um equívoco?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Olá Henrique, no do professor a condição está asssim:

// ...

         else if(evento.altKey && raio - 5 >= 10) {
            raio = raio - 5;
// ...

Já no seu código postado acima:

    //...
        if (evento.altKey && raio >= 10) {
             raio -= 5;           
        }
    //...

Na lógica do professor, se o raio chegar a 10, ele fará a validação: 10 - 5 é maior ou igual a 10?

Isso é falso, portanto não diminuirá a bolinha.

Já no seu a validação está assim, se o raio chegar a 10: 10 é maior ou igual 10?

Isso é verdadeiro, portanto diminuirá a bolinha.

Até mais!!

O que significa -= ?

É o mesmo que:

valor = valor - 5

É uma maneira abreviada apenas.

Então, valor++ é igual valor=valor+1 e valor-=1 é igual valor=valor-1 ?

Como se lê isso valor-=1 ?

Oi Jorge, valor -= 1 é a mesma coisa que valor = valor -1.

Obrigado Ially. E valor +=1 é o mesmo que valor++?

Olá Jorge, sim valor +=1 é o mesmo que valor++.