4
respostas

Da onde veio essas informações?

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

Confesso que não entendi, foi só pra mostrar uma maneira de fazer ou perdi alguma aula?

4 respostas

Olá!

Isso é uma forma de desenhar o "buraco" no esquadro.

Ao invés de usar duas funções para desenhar as duas partes do esquadro, dá para "matar dois coelhos com uma só cajadada":

uma parte desenha um triângulo preto e a outra parte faz o "buraco" em branco.

function desenhaEsquadro(xa, ya, xc, yc, cor) {
    pincel.fillStyle = 'black'
    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()
}

Quando você chama

desenhaEsquadro(50, 50, 400, 400, 'black')

a função cria um triângulo preto de coordenadas (50, 50); (50, 400); (400, 400), e um triângulo branco de coordenadas(100, 175); (100, 350); (275, 350).

Em outros temos, essa conta é uma transformação de coordenadas.

Eu ainda não entendi de onde vieram esses valores >D haha

Eu ainda não entendi de onde vieram esses valores >D haha

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)

Também fiquei ???? Compreendi que foi feito um cálculo grande só no xa para colocar na posição 100, mas nossa, trabalhoso em?