Programme de calcule de la distance entre deux points sur une sphère [tout compilo]

Description

Ce programme demande à l'utilisateur d'entrer le rayon de la sphere puis la longitude et la latitude des deux points et calcule la distance entre ces deux points.

Source / Exemple :


/* Calcule de la distance entre deux points sur une sphere par Tanguy Moret

  • Code source sous license GPL */
#include <iostream> #include <cmath> #include <cstdio> #define PI 3.14159265359 class sphere { double longitudeA, longitudeB, latitudeA, latitudeB, rayon; public: void init(); double calculedistance(); }; void sphere::init() { cout << "Entrez le rayon de la sphere (Rayon de la Terre = env. 6378.138) :\n"; cin >> rayon; cout << "Entrez la longitude du point A suivi de sa latitude :\n"; cin >> longitudeA >> latitudeA; cout << "\nEntrez la longitude du point B suivi de sa latitude:\n"; cin >> longitudeB >> latitudeB;} /* acos retourne une valeur en radian, cos et sin en degrée car on multiplie
  • les latitudes/longitudes par PI/180 (360°=2PI Radian) */
double sphere::calculedistance() { return((acos(cos(latitudeA*PI/180)*cos(latitudeB*PI/180)*cos((longitudeB*PI/180)-(longitudeA*PI/180))+sin(latitudeA*PI/180)*sin(latitudeB*PI/180)))*rayon);} int main() { sphere s1; cout << "\nCalcule de la distance entre deux points sur une sphere\n" << "Les latitudes nords sont positives, sud sont negatives\n" << "Les longitudes est de Greenwitch sont positives, ouest sont negatives\n\n"; s1.init(); cout << "\nLa distance entre les deux points est de : " << s1.calculedistance(); getchar(); // On quitte lorsque l'utilisateur appuye sur une touche cout << "\nTanguy Moret - 11/06/2002\n"; }

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.