1
resposta

Solução exercício Gráfico de Barras

Olá a todos. Após quebrar a cabeça um pouco consegui resolver da seguinte forma.

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

<script>

    var serie2015 = [50, 25, 20, 5];
    var serie2016 = [65, 20, 13, 2];
    var cores = ['blue', 'green', 'yellow', 'red'];
    var navegadores = ['Chrome','Firefox', 'Safari','Outros'];


    function desenhaRetangulo(x, y, largura, altura, cor) {
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');

        pincel.fillStyle=cor;
        pincel.fillRect(x,y, largura, altura);
        pincel.strokeStyle='black';
        pincel.strokeRect(x,y, largura, altura);
    }

    function desenhaTexto(x, y, texto) {
        var tela = document.querySelector('canvas');
        var pincel = tela.getContext('2d');

        pincel.font='15px Georgia';
        pincel.fillStyle='black';
        pincel.fillText(texto, x, y);    
    }


    function desenhaBarra(x, y, serie, cores, texto) {
    // aqui precisamos desenhar vários retângulos!

        desenhaTexto(x,y-10,texto);
        for (var i=0; i<cores.length; i++){  
            desenhaRetangulo(x,y,50,serie[i],cores[i]);
            y = y + serie[i];
        }
    }

    function desenhaLegenda(){ 
        var y = 160;
        var x = 180
            for (var i=0; i<cores.length; i++){
            desenhaRetangulo (50, y, 20, 20, cores[i]);
            desenhaTexto(80, x, navegadores[i]);
            y = y + 30;
            x = x + 30;
        }
    }

desenhaBarra(50, 50, serie2015, cores, '2015');
desenhaBarra(150, 50, serie2016, cores, '2016');
desenhaLegenda();

</script>

lembrando que é possível adicionar novos ítens nos vetores e assim continuar funcionando o código

1 resposta

Olá, Cyro! Tudo bem?

Isso mesmo, a solução está correta.

Qualquer dúvida estamos à disposição.

Continue praticando e bons estudos!

Até mais!