A fórmula que todo mundo aprende e quase todo mundo erra na prática
A fórmula da distancia fisica serve pra calcular o comprimento de um segmento de reta entre dois pontos no plano cartesiano. Nada mais nada menos. O resultado é a hipotenusa de um triângulo retângulo cujos catetos são as diferenças nas coordenadas x e y.
Como aplicar a formula da distancia fisica passo a passo
Você tem dois pontos: A(x, y) e B(x, y). A conta é essa aqui: d = [(x - x)² + (y - y)²]
Pega a diferença entre os x, eleva ao quadrado. Pega a diferença entre os y, eleva ao quadrado. Soma os dois resultados e tira a raiz quadrada. Pronto. Em três dimensões, se tiver um ponto Z com coordenada z, você só adiciona mais um termo: (z - z)² dentro da raiz. Exemplo rápido. Ponto A em (1, 2) e ponto B em (4, 6). Diferença em x: 4 - 1 = 3. Diferença em y: 6 - 2 = 4. 3² = 9, 4² = 16. 9 + 16 = 25. Raiz de 25 é 5. A distância entre os dois pontos é 5 unidades.
Essa é a teoria. Na prática, a coisa complica quando você lida com dados reais. Já perdi tempo demais num projeto de mapeamento onde as coordenadas vinham de diferentes fontes com sistemas de referência distintos. Um ponto vinha em WGS84, outro em um sistema local. A distância calculada diretamente pela fórmula dava um resultado completamente fora da realidade porque os eixos não estavam alinhados. A solução foi projetar todas as coordenadas para o mesmo sistema de referência antes de aplicar a fórmula. Sem isso, o erro podia facilmente passar de 500 metros em escalas regionais.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Por que as pessoas erram mesmo sabendo a fórmula
O erro mais comum é trocar a ordem dos termos na subtração e esquecer que o resultado final nunca será negativo, independente da ordem. A distância entre A e B é a mesma que entre B e A. Mas ainda vejo gente fazendo (x - x)² e (x - y)², misturando os índices, o que gera um número completamente errado sem aviso nenhum. Outro erro frequente é confundir a distância euclidiana com a distância em grade, aquela que se usa quando você só pode se mover para cima, para baixo, para os lados, como num tabuleiro de xadrez. A Manhattan é |x - x| + |y - y|. Não é a mesma coisa. A distância euclidiana é a linha reta, a de grade é o caminho minimo por ruas ortogonais. Em cidades planejadas com quarteirões perfeitos, às vezes a distância de grade faz mais sentido, mas a maioria dos problemas pede a euclidiana mesmo.
Tem também a questão da precisão. Quando as coordenadas são muito próximas, tipo na casa dos milímetros, a subtração dos valores grandes pode causar perda de precisão por cancelamento catastrófico em ponto flutuante. Se você tá trabalhando com sistemas computacionais e precisa de alta precisão, considere usar bibliotecas que implementam algoritmos como o de Kahan ou trabalhar com valores deslocados antes da subtração.
Limitações que ninguém comenta
A fórmula da distancia fisica assume um espaço plano. Isso é importante porque na prática muita gente aplica em superfícies curvas sem pensar. Se você quer a distância entre duas cidades na superfície da Terra, usar coordenadas cartesianas normais vai te dar um resultado com erro significativo. Para distâncias grandes, o correto é usar a fórmula de Haversine ou a de Vincenty, que consideram a curvatura terrestre. Para distâncias pequenas, digamos menos de 50 quilômetros, o erro da aproximação plana é geralmente aceitável, mas já começa a aparecer de forma mensurável. Outro ponto: a fórmula não leva em conta obstáculos. A distância euclidiana é sempre a linha reta. Se você precisa da distância real de uma trilha, uma estrada ou um corredão urbano, vai precisar de outras abordagens, como grafos de rede viária ou cálculo de custo de trajetória. Não adianta aplicar a fórmula e achar que o resultado vai refletir a realidade do terreno.
Se o seu problema envolve muitos pares de pontos, calcular tudo na mão é inviável. Em geral, usa-se a Lei dos Cossenos generalizada ou decomposição em matrizes para calcular todas as distâncias de uma vez. Num projeto recente, precisei calcular distances entre cerca de 12 mil pontos de sensoriamento. Rodar o loop simples em Python puro levou quase três horas. Refatorando para usar numpy com broadcasting, o tempo caiu para pouco mais de trinta segundos. A diferença é absurda e vale anotar. O essencial é saber quando a fórmula se aplica e quando ela não se aplica. Ela funciona perfeitamente em espaços euclidianos 2D e 3D com coordenadas bem definidas e no mesmo sistema de referência. Fora disso, ou quando a precisão é crítica, você precisa ajustar a abordagem antes de começar a calcular.