diff options
author | hurter | 2011-08-31 16:25:05 +0000 |
---|---|---|
committer | hurter | 2011-08-31 16:25:05 +0000 |
commit | 42dc1d36235292786322d28340a81c6cb3fd46c0 (patch) | |
tree | 6f4ef0d4ad672c54500d9457af90fc599ac9b299 /SimpleRadar_etudiants/CautrMath.cs | |
parent | 5aa429a3e7e9f610f5b2dd8f8e2a865ecfd25ea3 (diff) | |
download | amilis-42dc1d36235292786322d28340a81c6cb3fd46c0.zip amilis-42dc1d36235292786322d28340a81c6cb3fd46c0.tar.gz amilis-42dc1d36235292786322d28340a81c6cb3fd46c0.tar.bz2 amilis-42dc1d36235292786322d28340a81c6cb3fd46c0.tar.xz |
Diffstat (limited to 'SimpleRadar_etudiants/CautrMath.cs')
-rw-r--r-- | SimpleRadar_etudiants/CautrMath.cs | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/SimpleRadar_etudiants/CautrMath.cs b/SimpleRadar_etudiants/CautrMath.cs new file mode 100644 index 0000000..2d5b66e --- /dev/null +++ b/SimpleRadar_etudiants/CautrMath.cs @@ -0,0 +1,52 @@ +using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Drawing;
+
+namespace SimpleRadar
+{
+ public class MathCautra
+ {
+ /// CRadarGeo message handlers
+ static double PI = 3.1415926535;
+
+ /* conversion degres_radian */
+ static double degres_radian = PI / 180.0;
+
+ /* translation coordonees Cautra 3 Cautra 4 */
+ //static int translationC3 = 4096;
+
+ /* Transformation LAMBERT */
+ static double sin_lt = Math.Sin(47.0 * degres_radian);
+ /* sinus de la latitude de tangeance */
+ static double inv_sin_lt = 1.0 / sin_lt;
+
+ /* rayon LAMBERT a l'equateur */
+ static double re = 6327.721;
+ /* rayon LAMBERT au 47 N */
+ static double rt = 3201.39922;
+
+ /// <summary>
+ /// Convertion de coordonnees lat,long en 1/8 nm Cautra4
+ /// </summary>
+ /// <param name="latitude"></param>
+ /// <param name="longitude"></param>
+ /// <returns></returns>
+ public static PointF ToCautra4(double latitude, double longitude)
+ {
+ double a0; /* Angle de convergence */
+ double r0; /* rayon LAMBERT */
+ double sin_a0, cos_a0;
+ double xx;
+
+ a0 = longitude * sin_lt * degres_radian;
+ xx = Math.Tan(PI / 4 - (latitude * degres_radian) / 2.0);
+ r0 = re * Math.Pow(xx, sin_lt);
+ sin_a0 = Math.Sin(a0);
+ cos_a0 = Math.Cos(a0);
+ return new PointF(
+ (float)(8.0 * r0 * sin_a0),
+ (float)(8.0 * (rt - (r0 * cos_a0))));
+ }
+ }
+}
|