English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Análisis del método de cálculo de la dirección de conducción del automóvil en C#

Texto principal

1Este artículo analiza el método de cálculo de la dirección de desplazamiento de un automóvil en C#. Comparto con todos ustedes para que lo refieran, como se muestra a continuación:2.  Escena: Se conoce el proceso de desplazamiento de un automóvil en1un punto GPS A(n1,e

2),B(e),calcular la dirección de desplazamiento del automóvil.2+c2-b2)/2. Analisis: Como se muestra en la imagen superior, conociendo dos puntos A, B, se puede suponer un punto C, para que los tres puntos formen un triángulo rectángulo. Ahora se pueden calcular fácilmente las longitudes de los lados opuestos de los tres ángulos A, B, C. Según la fórmula del coseno, CosB = (a

3.C# implementación del código.

/// <summary>
///calcular la distancia entre las coordenadas GPS de dos puntos
/// </summary>
/// <param name="n1>coordenada de latitud del primer punto</param>
/// <param name="e1>coordenada de longitud del primer punto</param>
/// <param name="n2>coordenada de latitud del segundo punto</param>
/// <param name="e2>coordenada de longitud del segundo punto</param>
/// <returns></returns>
public static double Distance(double n1, double e1, double n2, double e2)
{
  double jl_jd = 102834.74258026089786013677476285;
  double jl_wd = 111712.69150641055729984301412873;
  double b = Math.Abs((e1 - e2) * jl_jd);
  double a = Math.Abs((n1 - n2) * jl_wd);
  return Math.Sqrt((a * a + b * b));
}
/// <summary>
/// Se conocen dos puntos GPS de un automóvil en movimiento, se solicita la dirección de desplazamiento del automóvil
/// </summary>
/// <param name="n1>primer punto GPS de latitud</param>
/// <param name="e1>primer punto GPS de longitud</param>
/// <param name="n2>segundo punto GPS de latitud</param>
/// <param name="e2>segundo punto GPS de longitud</param>
/// <returns></returns>
public static double GetBusDirection( double n1,double e1, double n2, double e2)
{
  double e3 = 0;
  double n3 = 0;
  e3 = e1 + 0.005;
  n3 = n1;
  double a = 0;
  double b = 0;
  double c = 0;
  a = Distance(e1, n1, e3, n3;
  b = Distance(e3, n3, e2, n2;
  c = Distance(e1, n1, e2, n2;
  double cosB = 0;
  if ((a * c) != 0)
  {
 cosB = (a * a + c * c - b * b) / (2 * a * c);
  }
  double B = Math.Acos(cosB) * 180 / Math.PI;
  if(n2<n1)
  {
 B=180+(180-B);
  }
  return B;
}

Los lectores interesados en más contenido relacionado con C# pueden ver la sección especial de este sitio: 'Resumen de técnicas de operaciones de cadenas en C#', 'Resumen de técnicas de operaciones de matrices en C#', 'Resumen de técnicas de operaciones de archivos XML en C#', 'Tutorial de uso de controles comunes en C#', 'Resumen de técnicas de uso de hilos en el diseño de programas C#', 'Resumen de técnicas de operaciones de Excel en C#', 'Resumen de técnicas de uso de controles WinForm', 'Tutorial de estructuras de datos y algoritmos en C#', y 'Tutorial de programación orientada a objetos en C# para principiantes'.

Espero que lo descrito en este artículo pueda ayudar a todos en el diseño de programas C#.

Declaración: El contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y sube por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha procesado editorialmente y no asume ninguna responsabilidad legal. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, reemplace # con @) para denunciar y proporcionar evidencia. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará