5
respostas

Não entendi a resolução - Esquadro #2

function desenhaEsquadro(xa, ya, xc, yc, cor) {

    pincel.fillStyle = cor

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

    pincel.fillStyle = "white"
    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();
Podem me explicar exatamente o que está acontecendo aqui?
5 respostas

Olá, Guilhereme! Tudo bem? Espero que sim. Bom.. comentei o código passo a passo, veja se consegue tirar sua dúvida:

    pincel.fillStyle = cor//altera a cor

//aqui irá começar a desenhar o triângulo
    pincel.beginPath();
    pincel.moveTo(xa, ya);//posiciona o pincel nas coordenas xa, ya
    pincel.lineTo(xa, yc);//faz uma linha até xa, yc
    pincel.lineTo(xc, yc);//faz uma linha até xc, yc
    pincel.fill();//completa o  triângulo e preenche-o.

//os mesmos passos sao feitos abaixo, mudando apenas as coordenadas
//assim, fazendo um triangulo menor.
    pincel.fillStyle = "white"
    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();

Qualquer coisa só perguntar.. Abraços e bons estudos!

Entendi, a única coisa que ainda tenho dúvida é em relação aos números nas partes: pincel.moveTo((6xa + xc)/7, (9ya + 5yc)/14); pincel.lineTo((6xa + xc)/7, (ya + 6yc)/7); pincel.lineTo((5xa + 9xc)/14, (ya + 6yc)/7);

É tipo um padrão encontrado pra poder chegar no tamanho desejado do segundo triângulo, você não precisa se preocupar com isso. Mas Caso se interesse há uma discussão no fórum que explica o caminho até chegar nesses números, você pode diz uma olhada.. Abs e bons estudos!

Espero que você consiga encontrar a resposta do que procura. Acesse o tópico que eu citei clicando nesse link. Lá tem tudo explicado.

Abraços e bom estudo!

Também fiquei sem entender de onde vinha esses números para criar o triangulo menor. Como o Amarildo falou... é um padrão, uma formula.

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