Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

#include <u.h>
#include <libc.h>
#include "map.h"

static double scale;

static int
Xgall(struct place *place, double *x, double *y)
{
        /* two ways to compute tan(place->nlat.l/2) */
        if(fabs(place->nlat.s)<.1)
                *y = sin(place->nlat.l/2)/cos(place->nlat.l/2);
        else
                *y = (1-place->nlat.c)/place->nlat.s;
        *x = -scale*place->wlon.l;
        return 1;
}

proj
gall(double par)
{
        double coshalf;
        if(fabs(par)>80)
                return 0;
        par *= RAD;
        coshalf = cos(par/2);
        scale = cos(par)/(2*coshalf*coshalf);
        return Xgall;
}