Projet

Général

Profil

« Précédent | Suivant » 

Révision 659

Ajouté par lefraisse il y a presque 4 ans

debug fonction conversion, création fonction distance zone dangereuse

Voir les différences:

main.c
if (i==8){
deglat=decode_nombre(ch,2);
for (j=2;j<i+1;j++){
deglat+=(ch[j]-'0')*(pow(10,-j+2))*1/6;
deglat+=(ch[j]-'0')*(pow(10,-j+2))*0.1666666666666;
}
return deglat;
}
......
if (i==9){
deglong=decode_nombre(ch,3);
for (j=3;j<i+1;j++){
deglong+=(ch[j]-'0')*(pow(10,-j+3))*1/6;
deglong+=(ch[j]-'0')*(pow(10,-j+3))*0.1666666666666;
}
return deglong;
}
......
}
//Calcul de la distance entre deux positions GPS
//float calcul_distance(Position p1,Position p2){
// float r=6378.137;
// return 2*r*asin(sqrt(pow(sin(pi/180*(p_1.latitude-p_2.latitude)/2),2)+cos(pi/180*p_1.latitude)*cos(pi/180*p_2.latitude)*pow(sin(pi/180*(p_1.longitude-p_2.longitude)/2),2)));
//}
float calcul_distance(Position p1,Position p2){
float r=6378.137;
return 2*r*asin(sqrt(pow(sin(pi/180*(p1.latitude-p2.latitude)/2),2)+cos(pi/180*p1.latitude)*cos(pi/180*p2.latitude)*pow(sin(pi/180*(p1.longitude-p2.longitude)/2),2)));
}
//Calcul de la vitesse entre 2 positions Gps
//float calcul_vitesse(Position p1,Position p2){
float calcul_vitesse(Position p1,Position p2){
float d;
d=calcul_distance(p1,p2);
return d*3600;
}
//}
//Structure zone dangereuse
typedef struct {
Position rpos;
float vitmax;
} Zone;
//On donne la distance de la zone dangereuse la plus proche
int distance_la_plus_proche_zone(Position P,Zone r[],int nb_zones,float *d){
int i,index;
//initialisation de la distance zones dangereuse-Position
float d_min=calcul_distance(P,r[0].rpos);
//Calcul de la distance zones dangereuse-Position pour conna?tre la zone dangereuse la plus proche
for(i=1;i<nb_zones;i++){
*d=calcul_distance(P,r[i].rpos);
if (*d<=d_min){
index=i+1;
d_min=*d;
}
}
return index,d_min;
}
//Ajouter vos tests unitaires dans cette fonction.
void tests_unitaires(void){

Formats disponibles : Unified diff