Annotation of researchv8dc/cmd/map/libmap/homing.c, revision 1.1

1.1     ! root        1: #include "map.h"
        !             2: 
        !             3: struct coord stdpar;
        !             4: 
        !             5: Xmecca(place, x, y)
        !             6: struct place *place;
        !             7: float *x, *y;
        !             8: {
        !             9:        *x = - place->wlon.l;
        !            10:        *y = -(place->nlat.c*stdpar.s -
        !            11:                place->nlat.s*stdpar.c*place->wlon.c)/stdpar.c;
        !            12:        if(fabs(place->wlon.l) > 0.01)
        !            13:                *y *= *x/sin(*x);
        !            14:        if(fabs(*y)>2.0)
        !            15:                return(0);
        !            16:        if(place->nlat.s*stdpar.s +
        !            17:           place->nlat.c*stdpar.c*place->wlon.c <0)
        !            18:                return(-1);
        !            19:        return(1);
        !            20: }
        !            21: 
        !            22: int (*mecca(par))()
        !            23: float par;
        !            24: {
        !            25:        if(fabs(par)>80.)
        !            26:                return(0);
        !            27:        deg2rad(par,&stdpar);
        !            28:        return(Xmecca);
        !            29: }
        !            30: 
        !            31: Xhoming(place, x, y)
        !            32: struct place *place;
        !            33: float *x, *y;
        !            34: {
        !            35:        int i = Xmecca(place, x, y);
        !            36:        float r, h;
        !            37:        if(i != 1)
        !            38:                return(i);
        !            39:        r = acos(stdpar.s*place->nlat.s +
        !            40:                stdpar.c*place->nlat.c*place->wlon.c);
        !            41:        h = hypot(*x, *y);
        !            42:        r = h<.001? r: r/h;
        !            43:        *x *= r;
        !            44:        *y *= r;
        !            45:        return(1);
        !            46: }
        !            47: 
        !            48: int (*homing(par))()
        !            49: float par;
        !            50: {
        !            51:        if(mecca(par)==0)
        !            52:                return(0);
        !            53:        return(Xhoming);
        !            54: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.