Inicio › Temas › Geometría analítica
📐 Geometría analítica nivel básico
Distancia y punto medio
Pitágoras en coordenadas: medir segmentos y hallar su centro.
🕹️ Ábrelo en el curso interactivo (simulador y código ejecutable)
La idea
La distancia entre dos puntos del plano se obtiene aplicando el teorema de Pitágoras al triángulo rectángulo cuyos catetos son las diferencias de coordenadas Δx y Δy. Es la fórmula más usada de toda la geometría analítica y se generaliza sin cambios al espacio de tres dimensiones (o de cualquier número de dimensiones) añadiendo términos al cuadrado.
El punto medio de un segmento es el promedio de las coordenadas de sus extremos. Más en general, el punto que divide al segmento en razón r se obtiene con una media ponderada: es la base de la interpolación lineal que usan las animaciones y los gráficos por computadora.
La distancia de un punto a una recta Ax + By + C = 0 se calcula con una fórmula cerrada que mide la longitud del segmento perpendicular; es la herramienta que usan los algoritmos de ajuste geométrico y de detección de colisiones.
Fórmulas clave
- Distanciad = √[(x₂ − x₁)² + (y₂ − y₁)²]
- Punto medioM = ((x₁ + x₂)/2, (y₁ + y₂)/2)
- División en razón rP = ((x₁ + r x₂)/(1 + r), (y₁ + r y₂)/(1 + r))
- Distancia punto-rectad = |A x₀ + B y₀ + C| / √(A² + B²)
Dónde se aplica
Los sistemas de GPS y mapas calculan la distancia entre coordenadas proyectadas exactamente así (sobre distancias cortas, donde la curvatura terrestre es despreciable). En aprendizaje automático, el algoritmo de los k vecinos más cercanos clasifica un dato nuevo midiendo su distancia euclídea a los ejemplos conocidos. Y en los videojuegos, detectar si dos objetos circulares chocan es comparar la distancia entre sus centros con la suma de sus radios.
Con programación (Python)
import math
def distancia(p, q):
return math.sqrt(sum((a - b) ** 2 for a, b in zip(p, q)))
def punto_medio(p, q):
return tuple((a + b) / 2 for a, b in zip(p, q))
A, B = (1, 2), (7, 10)
print("Distancia AB:", distancia(A, B))
print("Punto medio:", punto_medio(A, B))
# Funciona igual en 3D
print("Distancia 3D:", distancia((0, 0, 0), (1, 2, 2)))
# Vecino más cercano de un punto
puntos = [(0, 0), (5, 5), (3, 1), (8, 2)]
objetivo = (4, 2)
print("Más cercano:", min(puntos, key=lambda p: distancia(p, objetivo)))La versión en JavaScript, editable y ejecutable en el navegador, está en la página interactiva del tema.
Temas relacionados
La recta en el plano · La circunferencia · Vectores en el plano