Hoy veremos cómo obtener la distancia entre dos puntos del plano cartesiano usando el lenguaje de programación C y la fórmula de la distancia, que no es más que aplicar el teorema de Pitágoras.
Básicamente vamos a transcribir la fórmula al lenguaje y encerrarla en una función para su reutilización a través del resto de código.
Aquí te mostraré el programa en C para obtener la distancia entre dos puntos, pero no te explicaré la fórmula. Si quieres estudiar la fórmula te recomiendo este enlace.
Nota: si quieres calcular la distancia entre dos puntos geográficos del planeta mira este post.
La fórmula de la distancia en C
Recuerda que vamos a usar sqrt y pow para obtener la raíz cuadrada y elevar al cuadrado, respectivamente. Lo demás son simples restas, sumas y la aplicación de la fórmula. Dicho eso, veamos el código:
double calcularDistancia(int x1, int y1, int x2, int y2)
{
/*
Aplicar la fórmula que dice:
distancia = raiz_cuadrada_de(elevar_al_cuadrado(x1-x2) + elevar_al_cuadrado(y1-y2))
Nota: no importa el orden de los puntos ni si la distancia al restar es negativa
*/
return sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
}
Como puedes ver, esta función recibe los dos puntos y devuelve la distancia entre ellos.
Calculando distancia entre dos puntos con C
Ya vimos la función, ahora veamos la aplicación de la función con un ejemplo. El código completo queda así:
// https://parzibyte.me/blog
#include <stdio.h>
#include <math.h>
double calcularDistancia(int x1, int y1, int x2, int y2)
{
/*
Aplicar la fórmula que dice:
distancia = raiz_cuadrada_de(elevar_al_cuadrado(x1-x2) + elevar_al_cuadrado(y1-y2))
Nota: no importa el orden de los puntos ni si la distancia al restar es negativa
*/
return sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2));
}
int main(int argc, char const *argv[])
{
int x1 = 3, y1 = -4;
int x2 = 6, y2 = 0;
double distancia = calcularDistancia(x1, y1, x2, y2);
printf("La distancia entre %d,%d y %d,%d es %lf", x1, y1, x2, y2, distancia);
return 0;
}
Dentro del método main
vemos un ejemplo de uso de esta función. Al ejecutarlo, los resultados son correctos:
Ya a partir de esto podríamos solicitar los datos de los puntos al usuario, leerlos de un archivo, etcétera.
También puedes leer más sobre el lenguaje C.