1
resposta

DÚVIDA MATEMÁTICA

Eu gostaria enormemente de entender a matemática por trás desses cálculos para o esquadro interno. Deu pra perceber algumas coisas, como onde há:

(6 * xa + xc) / 7, (9 * ya + 5 * yc) / 14

Claramente existe um padrão entre o número de partes multiplicadas (9 + 5) e o número dividido (9 + 5 = 14), Porém, não consigo encontrar sentido lógico nas feitas para o ponto A e C. Vendo elas prontas, dá pra enteder como fazer pra sempre chegar a um número que faça o esquadro central ficar centralizado, porém adoraria entender a lógica que fez o professor chegar nessas operações (que possuem mais lógica que teoria matemática em si, imagino eu.) Se alguém souber algum lugar que possua essas informações, ou souber explica-las, eu ficaria imensamente grato.

1 resposta

Olá, João!

A matemática utilizada para desenhar o esquadro interno não se trata de aplicação de alguma fórmula ou algo do tipo. O que foi feito, na verdade, foi uma média ponderada com os pontos A e C para conseguir garantir um espaçamento ao esquadro interno, independentemente dos pontos que forem passados a função.

Como você mesmo percebeu os denominadores são exatamente a soma dos coeficientes, por se tratar de uma média ponderada. Dei um espaçamento no código da questão para deixar mais claro o que foi feito:

function desenhaEsquadro(xa, ya, xc, yc, cor) {
    // Esquadro externo  
    pincel.fillStyle = cor;
    pincel.beginPath();
        pincel.moveTo(xa, ya);
        pincel.lineTo(xa, yc);
        pincel.lineTo(xc, yc);
    pincel.fill();

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

Neste caso, acredito que estes pesos foram definidos de forma casual apenas para conseguir dar um espaçamento agradável na imagem.