2
respostas

Minha implementação no código do exercício do esquadro 2

Eu tinha postado uma dúvida aqui e acabei entendendo ao analisar melhor o meu código e como não tem como apagar o tópico aí resolvi postar uma implementação minha. segue abaixo:

Aqui uma imagem de como ficou no navegador

Aqui o código completo

<meta charset="UTF-8">

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

<script>

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

    function desenhaEsquadro(xa, ya, xc, yc, cor) {
                          // xb,         yb,

    //a implementacao fica com vc :)

        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.moveTo(xa, ya);
        pincel.lineTo(xa, yc);
        pincel.lineTo(xc, yc);
        pincel.fill();

        pincel.fillStyle = cor;
        pincel.beginPath();
        pincel.moveTo((6*xa + xc)/7, (9*ya + 5*yc)/14);
        pincel.lineTo((6*xa + xc)/7, (ya + 6*yc)/7);
        pincel.lineTo((5*xa + 9*xc)/14, (ya + 6*yc)/7);
        pincel.fill();        
    }

        desenhaEsquadro(50, 50, 400, 400, "black");
        desenhaEsquadro(100, 175, 275, 350, "white");
        desenhaEsquadro(125, 225, 225, 325, "red");

</script>
2 respostas

Olá, não entendi no seu caso uma parte da sua função, eu fiz como vc, mas não usei:

    pincel.fillStyle = cor;
    pincel.beginPath();
    pincel.moveTo((6*xa + xc)/7, (9*ya + 5*yc)/14);
    pincel.lineTo((6*xa + xc)/7, (ya + 6*yc)/7);
    pincel.lineTo((5*xa + 9*xc)/14, (ya + 6*yc)/7);
    pincel.fill();

pelo que entendi, essa função só usa qd vc usará duas cores, e ela já "preenche" o triangulo interno

Eu só acrescentei esse código abaixo e aí gerou aquele triângulo vermelho no centro. Se tirar ele fora aí fica com apenas 2 triângulos normal. Nesse caso não era o que o exercício pretendia, apenas eu resolvi colocar mais 1 triângulo e para isso precisei chamar a função desenhaQuadro com as medidas ainda menores, onde gera o triângulo menor.

desenhaEsquadro(125, 225, 225, 325, "red");