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

C#での車の進行方向を計算する方法の分析

本文

1本文では、C#で自動車の移動方向を計算する方法を分析しました。皆様に共有し、以下のように詳細に説明します:2.  场景:既知の自動車の移動中の1個のGPS座標点A(n1,e

2),B(e),それが移動方向を計算します。2+c2-b2)/2. 分析:上の図のように、二つの点A、Bが知られているので、C点を仮定し、三つの点が直角三角形を構成すると仮定します。今では、A、B、C三つのGPS座標が簡単に求まり、三つの角の对辺の長さa、b、cが求まります。余弦定理に従ってCosB=(a

3.C#での実現コード。

/// <summary>
///二つのGPS座標の距離を計算します
/// </summary>
/// <param name="n1「第一点の緯度座標」</param>
/// <param name="e1「第一点の経度座標」</param>
/// <param name="n2「第二点の緯度座標」</param>
/// <param name="e2「第二点の経度座標」</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>
/// 既知の自動車の移動する二つのGPS点の、自動車の移動方向を求めます
/// </summary>
/// <param name="n1「第一个GPS点緯度」</param>
/// <param name="e1「第一个GPS点経度」</param>
/// <param name="n2「第二个GPS点緯度」</param>
/// <param name="e2「第二个GPS点経度」</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;
}

C#に関するさらに詳しい内容に興味を持たれた読者は、以下の特集を参照してください:《C#文字列操作の技術的まとめ》、《C#配列操作の技術的まとめ》、《C#でXMLファイル操作の技術的まとめ》、《C#の一般的なコントロールの使用法教程》、《C#プログラム設計におけるスレッドの使用技術のまとめ》、《C#でExcel操作の技術的まとめ》、《WinFormコントロールの使用法まとめ》、《C#データ構造とアルゴリズム教程》、《C#のオブジェクト指向プログラム設計入門教程》

この記事に記載されている内容が皆様のC#プログラム設計に役立つことを願っています。

声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。コンテンツはインターネットユーザーにより自発的に貢献し、アップロードされました。このサイトは所有権を持ちません。また、人工編集は行われていません。著作権侵害が疑われる場合は、以下のメールアドレスまでご連絡ください:notice#oldtoolbag.com(メールを送信する際には、#を@に変更してください。申し訳ありませんが、関連する証拠を提供し、確認がされた場合、このサイトは即座に侵害する可能性のあるコンテンツを削除します。)

おすすめ