Distancia De Dois Pontos - Distância entre Dois Pontos
Distância entre Dois Pontos

Como calcular distância entre dois pontos na prática

A fórmula é simples, mas o que as pessoas geralmente ignoram é quando ela começa a falhar no mundo real. A distancia de dois pontos se baseia no teorema de Pitágoras: D = ((x - x)² + (y - y)²). Você tem duas coordenadas e quer saber o comprimento da linha reta que as liga. pronto. Mas existe um conjunto de detalhes que faz diferença dependendo do contexto.

O básico, sem enrolação

Você recebe dois pontos num plano cartesiano. Por exemplo, ponto A(3, 7) e ponto B(8, 2). Subtrai as coordenadas X: 8 - 3 = 5. Subtrai as coordenadas Y: 2 - 7 = -5. Eleva cada resultado ao quadrado: 5² = 25 e (-5)² = 25. Soma: 25 + 25 = 50. Tirar a raiz quadrada de 50 dá aproximadamente 7,07 unidades de distância. Esse é o método que todo mundo aprende no ensino médio. O problema é que quase ninguém menciona que essa fórmula assume um plano euclidiano em duas dimensões, e muitas das vezes você não está num plano perfeito.

Quando a fórmula padrão não basta

Já trabalhei num projeto de mapeamento urbano onde os dados vinham em coordenadas geográficas (latitude e longitude) e o cliente pedia distância entre dois pontos na superfície da Terra. Usei a fórmula padrão de Manhattan ou Pitágoras, e o resultado veio com erro de cerca de 12% comparado à medição real via satélite. O motivo é óbvio agora, mas na época não tinha percebido: a Terra não é plana, e em escalas grandes a curvatura importa. Para coordenadas geográficas, o correto é usar a fórmula de Haversine. Ela considera o raio da Terra e calcula a distância ao longo da superfície esférica. Em muitos casos práticos, como logística de entregas ou rastreamento de frota, usar Pitágoras em coordenadas GRS pode gerar erros de quilômetros em trajetos longos.

Limitações que ninguém avisa

Existem pelo menos três situações onde a distância euclidiana clássica vai te decepcionar: Primeiro, em espaços com dimensões maiores que duas. Se você trabalha com machine learning e tem vetores de 100 dimensões, a distância euclidiana perde sentido porque o que chamamos de "maldição da dimensionalidade" faz com que todas as distâncias tendam a se tornar semelhantes. Nesse caso, a distância de Mahalanobis ou métricas baseadas em cosseno são mais adequadas.

Segundo, quando a geometria do espaço não é uniforme. Imagine que você está calculando rotas em uma cidade com quarteirões retangulares, como Manhattan. Caminhar em linha reta pelo meio de um quarteirão é impossível. A distância euclidiana vai subestimar o tempo real de deslocamento. Aqui, a métrica de Manhattan (soma dos valores absolutos das diferenças em cada eixo) é mais honesta. Terceiro, e isso é importante, dados com escalas diferentes por dimensão. Se um eixo varia de 0 a 1 e outro de 0 a 1000, a dimensão maior vai dominar completamente o cálculo de distância. Sempre normalise seus dados antes de calcular. Isso é tão básico que parece obviedade, mas vi projetos inteiros serem comprometidos por isso.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Código funcional para o dia a dia

Abaixo está uma implementação prática em Python que cobre os três cenários mais comuns. Copie, adapte e use. Para distancia de dois pontos no plano cartesiano:

import math def distancia_euclidiana(p1, p2): return math.sqrt(sum((a - b) 2 for a, b in zip(p1, p2)))

Para coordenadas geográficas com Haversine: def haversine(lat1, lon1, lat2, lon2): R = 6371.0 phi1 = math.radians(lat1) phi2 = math.radians(lat2) delta_phi = math.radians(lat2 - lat1) delta_lambda = math.radians(lon2 - lon1) a = math.sin(delta_phi / 2) 2 + math.cos(phi1) * math.cos(phi2) * math.sin(delta_lambda / 2) 2 c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) return R * c

Essa implementação de Haversine tem precisão razoável para a maioria das aplicações terrestres. Para levantamentos topográficos de alta precisão, use o método de Vincenty, que considera o formato elipsoidal da Terra em vez de esférico.

O erro mais comum que eu vejo todo dia

Pessoas confundem ordem dos pontos e acabam achando que erro deu negativo na subtração. O sinal negativo não importa porque você eleva ao quadrado depois. Mas o que realmente causa problema é misturar a ordem das dimensões. Se o seu primeiro ponto é (longitude, latitude) e o segundo é (latitude, longitude), a conta vai sair errada e você não vai perceber porque o resultado numérico continua sendo "um número". Sempre verifique a ordem antes de processar. Outro detalhe prático: em bibliotecas como scikit-learn, a função pairwise_distances aceita arrays bidimensionais e calcula distância para múltiplos pares de uma vez. Se você precisa processar milhares de pontos, não use um loop for. A versão vetorizada é ordens de grandeza mais rápida.

Quando simplesmente não use essa abordagem

Se seus dados incluem obstáculos físicos — paredes, rios, morros — a distância em linha reta perde qualquer valor prático. Neste cenário, o que interessa é a distância de percurso, calculada por algoritmos de grafos como Dijkstra ou A*. Ferramentas como OSMnx ou rotas do Google Maps são mais adequadas do que qualquer fórmula geométrica. A distância euclidiana continua sendo a ferramenta mais rápida e suficiente para a maioria dos problemas do cotidiano. Conheça seus limites e mude de estratégia quando o contexto exigir.