1
resposta

Gráficos.

Assim ficou minha programação. Sei que pode ser melhorada, mas ainda não sei como melhorar, imagino que muitos desses usando looping melhora bastante, mas preciso melhorar meu conhecimento sobre o assunto. Porém vamos aprendendo:

<canvas width="1200" height="800"></canvas> 

<script>

    var tela = document.querySelector('canvas');
    var pincel = tela.getContext('2d');



    function desenhaBarra(x,y,cor,comprimento,altura) {

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

    function desenhaTexto(x,y,texto,fonte) {

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

    function grafico(x1,y1,x2,y2,p1,p2,p3,p4) {            //p1 = % azul, p2 = % amarelo, p3 = % verde, p4 = % vermelho)

        desenhaBarra(x1,y1,'blue',x2,(p1*y2));
        desenhaBarra(x1,y1+(p1*y2),'yellow',x2,(p2*y2));
        desenhaBarra(x1,y1+(p1*y2)+(p2*y2),'green',x2,(p3*y2));
        desenhaBarra(x1,y1+(p1*y2)+(p2*y2)+(p3*y2),'red',x2,(p4*y2));
    }

    function legenda(y,texto,cor){

        desenhaBarra(100,y,cor,20,20);
        desenhaTexto(130,y+15,texto,"20px Georgia");    

    }

    grafico(100,100,100,200,0.5,0.25,0.2,0.05);
    grafico(300,100,100,200,0.65,0.2,0.13,0.02);

    desenhaTexto(115,80,"2015","30px Georgia");
    desenhaTexto(315,80,"2016","30px Georgia");

    legenda(400,"Chrome",'blue');
    legenda(430,"Firefox",'yellow');
    legenda(460,'Safari','green');
    legenda(490,'Outros','red');

</script>

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Shaian! Tudo bem por aí?

Excelente, sua solução ficou muito boa, parabéns!

Caso tenha alguma dúvida não deixe de compartilhar.

Bons estudos e até mais!