Olá, Gabriel! Tudo bem contigo?
Desculpe a demora em dar um retorno!
Quando invocamos a função desenhaBarra
perceba que colocamos os seguintes parâmetros: x, y, serie2015 ou serie2016, cores e o texto
desenhaBarra(50, 50, serie2015, cores, '2015');
Dessa forma, esses parâmetros já estão sendo esperados lá na função
function desenhaBarra(x, y, serie, cores, texto) {
desenhaTexto(x, y - 10, texto)
var somaAltura = 0;
for(var i = 0; i < serie.length; i++) {
var altura = serie[i]
desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i])
somaAltura = somaAltura + altura
}
}
Agora vamos destrinchar essa função!!! =D
Assim que receber esses parâmetros ele irá para uma outra função dentro da função para desenhar o texto com os valores que colocamos na invocação. Neste caso o valor de X (50)
, o valor de Y (50) - 10
e o Texto (2015)
O próximo passo vai guardar a soma da altura das "barrinhas" para fazer a escala de cores a cada looping
Vamos ao For
No For a variável i
começará com zero e enquanto o valor de i
for menor que o tamanho da array (tamanho do "grupo" de valores dentro da serie2015
, ele executará esse For
Quando descer, ele vai guardar o primeiro valor da array serie2015
na variável altura
, no caso 50
.
Agora ele chamará uma outra função chamada desenhaRetangulo
, que vai pegar o valor de X
que colocamos, o valor de Y + a soma da altura
(que no momento inicial é zero), o valor 50
(largura), a altura
(50 como citamos acima) e a primeira cor, por se tratar de uma array de cores
O último passo vai pegar a variável somaAltura
, que até então comecou com zero e vai somar esse zero + altura (50)
Voltaremos para o i++
do for e o i
não vale mais zero. Agora vale 1 e repetimos todo o processo novamente.
Como nossa array de series possuem quatro valores, enquanto o valor de i
for menor que 4, ele fará esse processo
Espero ter deixado mais claro, Gabriel!
Caso fique algo pendente, me dê um retorno!
Um abraco e bons estudos!!