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 :
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;
}
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 ).

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.