| 
            Last change
 on this file since 3891 was             3654, checked in by cmv, 16 years ago           | 
        
        
          | 
             
mise a niveau Xephem 3.7.4, cmv 16/07/2009 
 
           | 
        
        
          | 
            File size:
            1.2 KB
           | 
        
      
      
| Line |   | 
|---|
| 1 | /* compure parallactic angle: angle formed by N pole - Object - Zenith
 | 
|---|
| 2 |  */
 | 
|---|
| 3 | 
 | 
|---|
| 4 | #include <stdio.h>
 | 
|---|
| 5 | #include <math.h>
 | 
|---|
| 6 | 
 | 
|---|
| 7 | #include "astro.h"
 | 
|---|
| 8 | 
 | 
|---|
| 9 | /* compute parallactic angle given latitude, object dec and alt.
 | 
|---|
| 10 |  * all angles in rads.
 | 
|---|
| 11 |  * N.B. always return >= 0, caller must determine sign and degenerate cases at
 | 
|---|
| 12 |  *   pole or zenith.
 | 
|---|
| 13 |  */
 | 
|---|
| 14 | double
 | 
|---|
| 15 | parallacticLDA (double lt, double dec, double alt)
 | 
|---|
| 16 | {
 | 
|---|
| 17 |         double ca = sin(lt);
 | 
|---|
| 18 |         double cb = sin(dec);
 | 
|---|
| 19 |         double sb = cos(dec);
 | 
|---|
| 20 |         double cc = sin(alt);
 | 
|---|
| 21 |         double sc = cos(alt);
 | 
|---|
| 22 |         double cpa;
 | 
|---|
| 23 | 
 | 
|---|
| 24 |         /* given three sides find an angle */
 | 
|---|
| 25 |         if (sb==0 || sc==0)
 | 
|---|
| 26 |             return (0);
 | 
|---|
| 27 |         cpa = (ca - cb*cc)/(sb*sc);
 | 
|---|
| 28 |         if (cpa < -1) cpa = -1;
 | 
|---|
| 29 |         if (cpa >  1) cpa =  1;
 | 
|---|
| 30 |         return (acos (cpa));
 | 
|---|
| 31 | }
 | 
|---|
| 32 | 
 | 
|---|
| 33 | /* compute parallactic angle given latitude, object HA and Dec.
 | 
|---|
| 34 |  * all angles in rads.
 | 
|---|
| 35 |  * return value is between -PI and PI, sign is like HA, ie +west
 | 
|---|
| 36 |  */
 | 
|---|
| 37 | double
 | 
|---|
| 38 | parallacticLHD (double lt, double ha, double dec)
 | 
|---|
| 39 | {
 | 
|---|
| 40 |         double A, b, cc, sc, B;
 | 
|---|
| 41 | 
 | 
|---|
| 42 |         A = ha;
 | 
|---|
| 43 |         b = PI/2 - lt;
 | 
|---|
| 44 |         cc = sin(dec);
 | 
|---|
| 45 |         sc = cos(dec);
 | 
|---|
| 46 |         solve_sphere (A, b, cc, sc, NULL, &B);
 | 
|---|
| 47 | 
 | 
|---|
| 48 |         if (B > PI)
 | 
|---|
| 49 |             B -= 2*PI;
 | 
|---|
| 50 |         return (B);
 | 
|---|
| 51 | }
 | 
|---|
| 52 | 
 | 
|---|
| 53 | /* For RCS Only -- Do Not Edit */
 | 
|---|
| 54 | static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: parallactic.c,v $ $Date: 2009-07-16 10:34:38 $ $Revision: 1.6 $ $Name: not supported by cvs2svn $"};
 | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.