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.
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.
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.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.