Formulas de geometria analitica que realmente importam no dia a dia
Achei que ia escrever sobre geo analitica formulas como se fosse um manual escolar, mas a verdade é que a maioria das pessoas só usa uns cinco ou seis no trabalho real. O resto fica guardado pra prova. Vou listar o que eu acabei usando na última semana, e o que esqueci de usar e me arrebentei com isso depois. Começando pelo mais básico: a distância entre dois pontos. Se você tem P1(x1,y1) e P2(x2,y2), a conta é raiz quadrada de (x2-x1)² + (y2-y1)². Parece óbvio, mas todo mundo erra na hora de colocar os sinais. Já vi gente calcular (1-5)² como 1-25. O quadrado elimina o negativo, então o resultado é o mesmo, mas o raciocínio tá errado e isso cosca em problemas mais avançados.
geo analitica formulas essenciais
A fórmula do ponto médio é simplesmente a média dos extremos: ((x1+x2)/2, (y1+y2)/2). Eu uso isso quase todo dia quando preciso achar o centro de um segmento em softwares de desenho técnico. Um erro comum é esquecer de dividir por dois em apenas uma coordenada. Aí o ponto médio fica deslocado e o desenho inteiro sai torto. O coeficiente angular da reta que passa por dois pontos é m = (y2-y1)/(x2-x1). Aqui tem uma pegadinha que muita gente não percebe: se x2 for igual a x1, a reta é vertical e o coeficiente não existe. Não é infinito, não é zero, simplesmente não está definido nesse sistema. Na prática, quando eu encontro isso num projeto, eu trato a linha como um caso especial e escrevo x = constante em vez de tentar forçar uma equação y = mx + b.
A equação reduzida da reta, y = mx + b, é útil mas tem limitações sérias. Linhas verticais não entram nela. Linhas horizontais têm m = 0, o que funciona, mas a forma geral Ax + By + C = 0 é mais robusta porque engloba todos os casos. Eu recomendo trabalhar sempre com a forma geral quando for programar alguma coisa que precise lidar com retas automaticamente. O custo é converter entre as formas na hora de mostrar o resultado pro usuário, mas isso é trivial. Distância de um ponto a uma reta: se a reta é Ax + By + C = 0 e o ponto é P(x0,y0), a conta é |Ax0 + By0 + C| dividido por raiz de A² + B². Essa fórmula aparece o tempo todo em problemas de otimização e em cálculos de colisão. O valor absoluto no numerador é importante porque a distância sempre é positiva, independente de qual lado do plano o ponto tá.
Equação da circunferência: (x-a)² + (y-b)² = r², onde (a,b) é o centro e r é o raio. Às vezes eu vejo gente confundir com a fórmula da esfera, que é a mesma coisa mas numa dimensão a mais. No plano, é só circunferência mesmo. O erro clássico é trocar o sinal do centro: se a equação tá escrita como x² + y² - 6x + 4y - 12 = 0, completar quadrados mostra que o centro é (3,-2), não (-3,2). O sinal inverte quando você isola o centro. Para elipses, a forma canônica é (x-h)²/a² + (y-k)²/b² = 1. O detalhe que os livros raramente destacam é que a não é sempre o semieixo maior. Se b > a, o eixo maior é vertical. Isso importa quando você precisa calcular a excentricidade, que é e = raiz de |a²-b²| / maiorSemieixo. Uma elipse muito achatada tem excentricidade próxima de 1, um círculo tem excentricidade zero. Quando eu preciso classificar cônicas num algoritmo, esse número é o que eu uso como critério principal.
Hipérboles seguem o mesmo padrão, mas com subtração: (x-h)²/a² - (y-k)²/b² = 1 ou o inverso, dependendo da orientação. As assíntotas são o que dão a identidade visual da curva, e elas vêm diretas das fórmulas y-k = ±(b/a)(x-h) ou y-k = ±(a/b)(x-h). Muitos alunos decoram a equação mas não sabem traçar a hipérbole sem as assíntotas como guia. Na prática, desenhar as assíntotas primeiro economiza meia hora de ajuste manual. Parábolas têm duas formas comuns: y = a(x-h)² + k ou x = a(y-k)² + h. O parâmetro a controla a abertura. Quanto maior o valor absoluto de a, mais fechada a parábola fica. Um erro frequente é achar que a posição do vértice (h,k) determina a abertura, quando na verdade só o coeficiente a faz isso. Eu já passei por isso num projeto de trajetórias onde o vértice estava correto mas a parábola vinha absurdamente aberta porque o parâmetro de aceleração foi ignorado.
Uma coisa que ninguém ensina bem é como essas curvas se comportam numericamente. Quando você implementa a equação da circunferência num computador, valores muito grandes de x e y podem causar cancelamento catastrófico ao calcular (x-a)². No meu caso, trabalhei com coordenadas da ordem de 10 e o problema era visível nos cálculos de interseção. A solução foi transladar todas as coordenadas subtraindo o centro antes de elevar ao quadrado. Isso reduz o número de dígitos significativos envolvidos e melhora a precisão sem alterar a geometria. Outro problema prático diz respeito à representação de retas paralelas. Duas retas são paralelas quando têm o mesmo coeficiente angular, mas na forma geral Ax + By + C = 0 a condição é que os vetores normais (A,B) sejam proporcionais. Eu já perdi tempo debugando um código que testava paralelismo comparando m1 == m2 com ponto flutuante, e o problema era que os valores eram 0.33333333 e 0.33333337 devido a diferentes ordens de operação. Comparar os vetores normais com uma tolerância relativa é muito mais seguro.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Para ângulos entre retas, a fórmula é tg(theta) = |(m2-m1)/(1+m1*m2)|. Ela falha quando as retas são perpendiculares, porque o denominador vira zero. Nesse caso, o ângulo é 90 graus e pronto. Também falha quando uma das retas é vertical, porque m não existe. Nesses cenários, eu uso o produto escalar dos vetores diretores: cos(theta) = |v1.v2|/(|v1|*|v2|). É mais geral e funciona para qualquer par de retas no plano, exceto quando uma delas é degenerada num ponto. Área de triângulos com coordenadas é outra ferramenta que salva bastante tempo. Se os vértices são A(x1,y1), B(x2,y2), C(x3,y3), a área é metade do valor absoluto de x1(y2-y3) + x2(y3-y1) + x3(y1-y2). Isso vem do determinante da matriz aumentada com uma coluna de uns. O sinal do determinante indica a orientação dos vértices: positivo para horário, negativo para anti-horário, ou o contrário dependendo da convenção. Em processos de triangulação, usar esse sinal pra verificar a orientação de cada triângulo evita caras e corcovas em malhas.
Sistemas de coordenadas polares também merecem menção. A conversão básica é x = r*cos(theta) e y = r*sin(theta). A forma polar de uma curva aparece frequentemente em problemas de trajetória orbital e em gráficos computacionais. Uma circunferência com centro na origem vira r = constante, o que é muito mais simples que a forma cartesiana. Já usei essa representação pra simplificar um algoritmo de geração de padrões radiais que originally levava horas pra rodar e passou a rodar em minutos depois da transformação. Vetores são a espinha dorsal de tudo isso. O módulo de um vetor v = (vx,vy) é raiz de vx² + vy². O produto escalar v.w = vx*wx + vy*wy dá uma medida de quão alinhados os vetores estão: se for positivo, o ângulo é agudo; se for zero, são perpendiculares; se for negativo, obtuso. O produto vetorial no plano, na verdade o determinante |vx wy - vy wx|, dá o dobro da área do paralelogramo formado pelos dois vetores e ainda indica o sentido de rotação. Esse determinante é onipresente em geometria computacional.
Reflexão de pontos sobre eixos e origens é trigonometria básica aplicada. Reflexão sobre o eixo x inverte o y: (x,y) vira (x,-y). Sobre o eixo y, inverte o x. Sobre a origem, inverte ambos. Rotações usam a matriz de rotação com cos e sin. Se você precisa girar um ponto P(x,y) em torno da origem num ângulo theta, a nova posição é (x*cos(theta) - y*sin(theta), x*sin(theta) + y*cos(theta)). Girar em torno de um ponto arbitrário requer transladar esse ponto pra origem, aplicar a rotação, e transladar de volta. Pulei esse passo na primeira implementação e o objeto girava emaranhado num vão do espaço. Transformações afins generalizam isso tudo. Uma transformação afim no plano é da forma x' = ax + by + c, y' = dx + ey + f. Matematicamente, é uma multiplicação de matriz por vetor mais uma translação. Homotetias, rotações, reflexões, cisalhamentos — tudo entra nessa categoria. O segredo prático é que a composição de transformações afins também é afim, e pode ser representada por uma única matriz 3x3 homogênea. Trabalhar com coordenadas homogêneas evita ter que transladar separadamente e permite encadear várias transformações com uma única multiplicação de matriz.
Geometria analítica no espaço tridimensional segue a mesma lógica com uma coordenada a mais. Distância entre pontos usa a extensão natural da fórmula bidimensional. Planos são dados por Ax + By + Cz + D = 0. A distância de um ponto a um plano generaliza a fórmula do plano bidimensional. Retas no espaço precisam de um ponto e um vetor diretor, ou então da interseção de dois planos. A representação paramétrica r = r0 + t*v é a mais usada porque lida naturalmente com paralelismo e interseções. Conicas no espaço são superfícies: elipsóides, hiperboloides, paraboloides. Cada uma tem sua equação canônica e suas propriedades métricas próprias. A classeificação por autovores da matriz quadrática associada é o método geral, mas na prática eu raro chego até aí porque os problemas reais já vêm na forma canônica ou close disso. O que mais cai é identificar se uma seção plana de um conoide é elipse, parábola ou hipérbole, e a resposta depende do ângulo entre o plano e o eixo do conoide.
Um aspecto que merece atenção é a escolha da representação para armazenamento e computação. Coordenadas cartesianas são intuitivas mas sensíveis a translacoes grandes. Coordenadas relativas ao centr do objeto são mais estáveis numericamente. Em sistemas CAD eu vi times inteiros migrarem de coordenadas absolutas pra relativas e reduzirem erros de arredondamento em duas ordens de grandeza. A desvantagem é que a leitura humana fica mais trabalhosa, então a convenção comum é manter a exibicao em absolutas e fazer os cálculos em relativas. A precisão dos cálculos também depende do tipo de numero usado. Ponto flutuante de dupla precisão (float64) dá cerca de 15 algarismos significativos. Para coordenadas da ordem de metros com precisao de milimetro, isso é suficiente na maioria dos casos. Quando voce trabalha com escalas maiores, como coordenadas geodésicas em escala continental, o float64 ainda aguenta, mas a soma de termos de magnitudes muito diferentes perde precisão. Nesses casos, usar uma varianca de ponto flutuante extendido ou fazer redilucao periodica dos operandos ajuda. Numa aplicacao mia com coordenadas UTM, migrei pra float80 interno e ganhei cerca de 30% menos erros de topologia sem mudar a interface.
Quando uma formula falha é tao importante quanto saber quando ela funciona. A formula da distancia entre pontos falha se voce tentar usar em variedades curvas sem parametrizacao adequada. A equacao da reta falha para retas verticais na forma reduzida. O angulo entre retas falha quando sao perpendiculares na forma trigonometrica classica. A area de triangulos falha se os pontos forem colineares, produzindo area zero, o que pode ser tanto um resultado valido quanto um sinal de erro de entrada. Validar a nao-colinearidade antes de calcular area economiza debug. Instrumentos e software modernas implementam essas formulas de formas otimizadas. Bibliotecas como CGAL, Eigen e GLM oferecem rotinas prontas pra distancia, produto escalar, produto vetorial, intersecao reta-plano, e muitas outras. O custo de chamar uma funcao otimizada eh geralmente menor que implementar do zero, e a manutencao fica mais facil. A desvantagem eh que voce perde contato com o que acontece por baixo, o que pode mascarar erros conceituais. O balanceio ideal eh entender a formula, implementar uma versao propria pra testes, e depois substituir pela biblioteca apos validar os resultados.
Se voce esta estudando isso so pra prova, decore as formas canonicas e saiba derivar distancia e ponto medio. Se voce vai usar no trabalho, foca em representacoes robustas, validacao de entrada, e tratamento de casos degenerados. A diferença entre um calculo que funciona e um que quebra em produdao eh quase sempre um desses tres fatores, nunca a formula em si.