bonjours a tous,
voici mon problème : j'ai deux fonction dont le code est prèsque identique et qui se rejoigne a un certain moment.
le moment ou elle se rejoigne, voici le code :
j'aimerai pouvoir appeler celle ci et qu'elle me retourne un tableau afin que je puisse afficher (nous vous inuiétez pas pour la suite je gere cette afichage ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 { //////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////conversion d'angle en seconde en radian////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////// // conversion en seconde conversionlat = (degrelat * 3600) + (minuteslat * 60); conversionlong = (degrelong * 3600) + (minuteslong * 60); /* si on est a l'ouest, la longitude est négative mais le gps ne l'indique pas au niveau des angle si on est au sud , la latitude est négative mais le gps ne l'indique pas au niveau des angle */ if (donnee[4].IndexOf("S") == 0) { conversionlat = conversionlat * (-1); } if (donnee[6].IndexOf("W") == 0) { conversionlong = conversionlong * (-1); } // convrsion en radian radlat = conversionlat * ((Math.PI) / (180 * 3600)); radlong = conversionlong * ((Math.PI) / (180 * 3600)); /* formules D= R*Math.Acos((Math.Sin (phi0) *Math.Sin (phi1))+ (Math.Cos (phi0)*Math.Cos(phi1)*Math.Cos(teta1-teta0))); * le rayon moyen de la terre est de 6371km * nous allons chercher la distance entre le point et l'équateur et entre le point et le méridien0 * pour cela , il faut soit annuler phi0 soit têta. * ce qui revient a dire d'annuler soit lat soit long en fonction de la distance que l'on veut. * ces deux distance vont permettre de se reperer dans le plan X et Y pour pouvoir retracer le champ */ //distance entre Le point de l'equateur => on mesure une latitude. => même longitude deb = 6371000 * Math.Acos(Math.Cos(radlat)); // distance entre le meridien et le point => on mesure une longitude => même latitude dmb = 6371000 * Math.Acos(Math.Cos(radlong)); //=> On a le disctance entre equateur et point et meridien0 et point // mise sous forme de point coordonnees.X = Convert.ToSingle(dmb); coordonnees.Y = Convert.ToSingle(deb); if (length == 0) { // on a besoin connaître une valeur de départ => la premiere valeur que l'on a sera la valeur de référence // pour les minimums que programme va connaître DEBMIN = coordonnees.Y; DMBMIN = coordonnees.X; } geodata.Add(coordonnees);// on ajoute le point a la liste de pointf // attention il faut minimum deux point .... if (length > 2) { foreach (PointF P in geodata)// on parcourt la liste de pointf { if (P.Y > DEBMAX) { DEBMAX = P.Y; } if (P.Y < DEBMIN) { DEBMIN = P.Y; } DELTADEB = DEBMAX - DEBMIN;// distance entre les deux points latitudinalement dont on a besoin if (P.X > DMBMAX) { DMBMAX = P.X; } if (P.X < DMBMIN) { DMBMIN = P.X; } DELTADMB = DMBMAX - DMBMIN;// distance entre les deux points longitudinalement dont on a besoin // instauration d'une echelle en X et en Y echelleX = (DELTADMB / pictureBox1.Width); echelleY = (DELTADEB / pictureBox1.Height); } } // pour retranscrir et centrer sur la picture box : // pt.X = (pictureBox1.Width / 2) + nombrex; // // pt.Y = (pictureBox1.Height / 2) - nombrey;// // de plus, on soustrait DMB a deb min pour la reference de la picturebox1 PICTB.X = (pictureBox1.Width / 2) + (echelleX * (Convert.ToSingle(dmb) - DMBMIN)); PICTB.Y = (pictureBox1.Height / 2) - echelleY * (Convert.ToSingle(deb) - DEBMIN); PICTTBL.Add(PICTB); //////////////////////////////////////////////////////////////////////////////////////////////////////////// coordon = PICTTBL.ToArray();// tableau de pointf length = length + 1; }
cette fonctione traite les variables qui sont : degrelat,degrelong,minuteslat et minuteslong.
j'aurai donc besoin de creer cette fonction et de savoir comment l'appeler dans mon programme. merci d'avance.
Partager