1
resposta

Uma inofensiva flor...

Eu encontrei uma solução na forma mais simples e intuitiva:

<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, 160, 20, 'yellow');
    desenhaCirculo(300, 200, 20, 'red');
    desenhaCirculo(300, 240, 20, 'blue');
    desenhaCirculo(340, 200, 20, 'black');
    desenhaCirculo(260, 200, 20, 'orange');

</script>

Depois, olhando para o código, identifiquei um padrão e resolvi criar funções só para por em prática alguns dos ensinamentos do curso e apesar de possuir mais linhas de código eu acho que ficou melhor.

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

    function desenhaColunaCentral(x, raio) {

        cores = ['yellow', 'red', 'blue']
        var y = 160;
        var tamanho = cores.length; 

        for (var i = 0; i < tamanho; i++) {

            desenhaCirculo(x, y, raio, cores[i]);
            y += 40;       

        }

    }

    function desenhaLinhaCentral(y, raio) {

        cores = ['black', 'orange']
        var x = 260;
        var tamanho = cores.length; 

        for (var i = 0; i < tamanho; i++) {

            desenhaCirculo(x, y, raio, cores[i]);
            x += 80;       

        }

    }

    var raio = 20;
    desenhaColunaCentral(300, raio);
    desenhaLinhaCentral(200, raio);


</script>
1 resposta

Boa Claudinei!! Muito interessante a ideia de desenhar por colunas e tornar o raio uma variável também.