2
respostas

Atividade - Uma inofensiva Flor

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

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    pincel.fillStyle = 'lightgray';
    pincel.fillRect(0, 0, 600, 400);

    function desenhaCirculo(x, y, raio, cor) {

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

    desenhaCirculo(300, 200, 10, 'red');
    desenhaCirculo(300, 180, 10, 'yellow');
    desenhaCirculo(300, 220 10, 'blue');
    desenhaCirculo(280, 200, 10, 'orange');
    desenhaCirculo(320, 200, 10, 'black');

</script>

Não sei se tem uma maneira mais fácil de chamar a função, mas como são cores diferente, fiz assim.

2 respostas

Olá Heloisa tudo bem ?

Acabei de testar seu código aqui e tem uma pequena observação na linha 20 :

desenhaCirculo(300, 2,20 10, 'blue');

Observe que foi inserido uma vírgula entre o 2,20 quando na verdade essa vírgula deveria estar entre o 220,10 e esse pequeno detalhe causa erros de compilação :

 desenhaCirculo(300, 220 ,10, 'blue');

Tirando esse detalhe o modo que você fez seu código ficou muito legal e trouxe o resultado esperado parabéns. =)

Outra maneira seria de fazer ele seria :

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

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');
    pincel.fillStyle = 'lightgray';
    pincel.fillRect(0, 0, 600, 400);

    function desenhaCirculo(x, y, raio, cor) {

        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.arc(x, y, raio, 0, 2 * Math.PI);
        pincel.fill();
    }

    function desenhaFlor(x, y) {

        desenhaCirculo(x, y+20, 10, 'blue');
        desenhaCirculo(x, y, 10, 'red');
        desenhaCirculo(x, y-20, 10, 'yellow');
        desenhaCirculo(x-20, y, 10, 'orange');
        desenhaCirculo(x+20, y, 10, 'black');
    }

    desenhaFlor(300, 200);

</script>

Nesse caso apenas criamos uma nova função chamada desenhaFlor que podemos indicar a posição x e y de onde o centro da flor será desenhado e dentro da função ajustar esse valor somando/subtraindo 20 pixels , após feito isso é só passar os valores do posicionamento dentro da função desenhaFlor quando for invoca-la.

Espero ter ajudado , continue assim praticando que você vai evoluir muito . =)

Abraços e bons estudos!!

Ah ! Muito obrigada pela dica! Quando estava clicando no atalho para salvar, acabei digitando a vírgula sem querer. Já tinha testado e estava desenhando certinho. Acabei de corrígi-la!