Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

sei que minha solução está errada, mas gostaria que alguém me explicasse melhor

<script>

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

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

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

    function desenhaBarra(x, y, serie, cores, texto){
        desenhaTexto(x, y -10, texto);

        var x = 50;
        var y = 50;
        desenhaRetangulo(x, y, serie2015, cores, "2015");

        var x = 150;
        desenhaRetangulo(x, y, serie2016, cores, "2016");

    }

    desenhaBarra();

</script>
4 respostas

Seria bom se você dissesse o que é o problema, só com o código fica difícil saber o que precisa ser explicado rs

solução!

Olá Virgínia,

o código possui alguns erros a partir dessa parte:

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

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

    function desenhaBarra(x, y, serie, cores, texto){
        desenhaTexto(x, y -10, texto);

        var x = 50;
        var y = 50;
        desenhaRetangulo(x, y, serie2015, cores, "2015");

        var x = 150;
        desenhaRetangulo(x, y, serie2016, cores, "2016");

    }

    desenhaBarra();

Você declara 3 arrays (serie2015, serie2016 e cores), chama eles na função desenha barra mas sem especificar a posição do array.

Outro problema na função desenha barra é que você pede os valores de x e y, que é usado no desenha texto, mas então tenta redefinir os valor de xy para a função desenhaRetangulo e redefine novamente para chamar a funçao desenhaRetangulo de novo. Por que você não coloca as funções desenha Retangulo já com os valores definidos?

Porém como eu especificaria a posição do array?

a função desenhaBarra() está sendo chamada sem que parâmetros sejam passados no final do código...