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
| int main(int argc, char *argv[])
{
double ascension_droite;
double longitude;
double latitude;
double declinaison;
double a;
double b;
double X;
double Y;
struct azi_hau
{
double azimut;
double hauteur;
};
struct azi_hau essai;
a=0;
b=0;
/*
a=Azimut(3184,61.1241667 ,-2,50) ;
printf("%lf " ,a);
b=Hauteur(3184,61.1241667 ,-2,50) ;
printf("%lf " ,b);
*/
}
struct azi_hau essai(double AD , double declinaison , double longitude , double latitude)
{
double azimut;
double H ;
double phi;
double theta;
double h;
double D1;
double d2;
double delta;
double az;
double pi;
pi = 3.141592 ;
latitude = (latitude*2*pi)/360;
longitude = (longitude*2*pi)/360;
declinaison = (declinaison *2*pi)/360;
H = pi/2-latitude;
phi = 2*pi*(AD-12*3600)/(24*3600) + longitude;
if ( phi>pi )
{
phi -= 2* pi ;
}
if ( phi<-pi )
{
phi += 2* pi;
}
if ( phi>=0 )
{
theta = acos( (cos(phi)*cos(H))/
(sqrt(sin(phi)*sin(phi)+cos(phi)*cos(phi)*cos(H)*cos(H)))) ;
}
else
{
theta = 2*pi -acos( (cos(phi)*cos(H))/
(sqrt(sin(phi)*sin(phi)+cos(phi)*cos(phi)*cos(H)*cos(H)))) ;
}
h = asin(cos(phi)*sin(H));
D1 = cos(latitude)*cos(pi/2-declinaison);
d2 = cos(h)*sin(pi/2 - declinaison);
delta = sqrt(d2*d2+D1*D1-2*D1*d2*cos(theta));
az = acos((delta*delta+D1*D1-d2*d2)/(2*D1*delta));
if ( phi>=0)
{
essai.azimut =2*pi-az;
}
else
{
essai.azimut =az;
}
essai.hauteur = asin(sin(latitude)*sin(declinaison)+cos(phi)*cos(latitude)*cos(declinaison));
return essai;
} |
Partager