3
respostas

como a fuinção "desenhaBarra" interage com o resto do cofigo?

eu nao entendi como o codigo das barras nao entendi como a função "desenhaBarra" interage com as outras funcões e tb nao entendi o "i" dentro do for

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


    function desenhaRetangulo(x, y, largura, altura, cor) {


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

    function desenhaTexto(x, y, texto) {

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

    function desenhaBarra (x,y,serie,cores,texto){

        desenhaTexto(x,y-10,texto);

        var somaAtula=0

        for(var i=0;i<serie.length;i++){
            var altura =serie[i];
            desenhaRetangulo(x,y+somaAtula,50,altura,cores[i]);
            somaAtula=somaAtula+ altura;
        }
    }

    var cores= ["blue","green","yellow","red"];

    var serie2015=[50,25,20,5];
    var serie2016=[65,20,13,2];



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

</script>
3 respostas

Olá Elias,

A função desenhaBarra chama a função desenhaTexto, que escreve um texto.

Depois, entra em um laço de repetição, a variável i é apenas um contador, para saber em qual vez ele está passando, começa em 0, vai até quantos elementos tiver em série e incrementa 1 por vez.

Então ele faz: 1, 2, 3, 4.. Até quantos elementos tiver dentro da serie (serie.length), no caso.

E aí, para cada um desses elementos da serie, ele desenha um retangulo.

===

Uma dica que te dou, talvez fique até mais claro do que a minha explicação, é usar as ferramentas de desenvolvedor no Google Chrome.

Na sua página, aperte a tecla F12, vai abrir uma nova janela.

Vai na aba "Fontes", encontra a sua página ali e ao lado do número da linha, clica, vai inserir uma bolinha vermelha.

Essa bolinha é um Break Point, ou Ponto de Parada, sempre que o código chegar ali, irá fazer uma parada, assim você consegue ir olhando o que o código está fazendo em tempo real.

Talvez dessa forma fique mais claro.

===

Deixo aqui ainda um link, é um tutorial do próprio Google de como usar as ferramentas de desenvolvedor para depurar o código.

https://developers.google.com/web/tools/chrome-devtools/javascript

Espero ter ajudado, mas se ainda ficar com dúvida, pode perguntar!

muito bom tirou todas as minhas duvidas

Que ótimo Elias!

Por favor, só peço para marcar a minha resposta então como solução, assim a Alura encerra o tópico.

E dessa forma também, caso alguém com uma dúvida parecida com a sua veja, saberá que há uma solução e que deu certo para alguém.

:)