📄 map.h
字号:
#pragma lib "/sys/src/cmd/map/libmap/libmap.a$O"#pragma src "/sys/src/cmd/map/libmap"#ifndef PI#define PI 3.1415926535897932384626433832795028841971693993751#endif#define TWOPI (2*PI)#define RAD (PI/180)double hypot(double, double); /* sqrt(a*a+b*b) */double tan(double); /* not in K&R library */#define ECC .08227185422 /* eccentricity of earth */#define EC2 .006768657997#define FUZZ .0001#define UNUSED 0.0 /* a dummy double parameter */struct coord { double l; /* lat or lon in radians*/ double s; /* sin */ double c; /* cos */};struct place { struct coord nlat; struct coord wlon;};typedef int (*proj)(struct place *, double *, double *);struct index { /* index of known projections */ char *name; /* name of projection */ proj (*prog)(double, double); /* pointer to projection function */ int npar; /* number of params */ int (*cut)(struct place *, struct place *, double *); /* function that handles cuts--eg longitude 180 */ int poles; /*1 S pole is a line, 2 N pole is, 3 both*/ int spheroid; /* poles must be at 90 deg if nonzero */ int (*limb)(double *lat, double *lon, double resolution); /* get next place on limb */ /* return -1 if done, 0 at gap, else 1 */};proj aitoff(void);proj albers(double, double);int Xazequalarea(struct place *, double *, double *);proj azequalarea(void);int Xazequidistant(struct place *, double *, double *);proj azequidistant(void);proj bicentric(double);proj bonne(double);proj conic(double);proj cylequalarea(double);int Xcylindrical(struct place *, double *, double *);proj cylindrical(void);proj elliptic(double);proj fisheye(double);proj gall(double);proj gilbert(void);proj globular(void);proj gnomonic(void);int guycut(struct place *, struct place *, double *);int Xguyou(struct place *, double *, double *);proj guyou(void);proj harrison(double, double);int hexcut(struct place *, struct place *, double *);proj hex(void);proj homing(double);int hlimb(double*, double*, double resolution);proj lagrange(void);proj lambert(double, double);proj laue(void);proj lune(double, double);proj loxodromic(double); /* not in library */proj mecca(double);int mlimb(double*, double*, double resolution);proj mercator(void);proj mollweide(void);proj newyorker(double);proj ortelius(double, double); /* not in library */int Xorthographic(struct place *place, double *x, double *y);proj orthographic(void);int olimb(double*, double*, double);proj perspective(double);int plimb(double*, double*, double resolution);int Xpolyconic(struct place *, double *, double *);proj polyconic(void);proj rectangular(double);proj simpleconic(double, double);int Xsinusoidal(struct place *, double *, double *);proj sinusoidal(void);proj sp_albers(double, double);proj sp_mercator(void);proj square(void);int Xstereographic(struct place *, double *, double *);proj stereographic(void);int Xtetra(struct place *, double *, double *);int tetracut(struct place *, struct place *, double *);proj tetra(void);proj trapezoidal(double, double);proj vandergrinten(void);proj wreath(double, double); /* not in library */void findxy(double, double *, double *);void albscale(double, double, double, double);void invalb(double, double, double *, double *);void cdiv(double, double, double, double, double *, double *);void cmul(double, double, double, double, double *, double *);void cpow(double, double, double *, double *, double);void csq(double, double, double *, double *);void csqrt(double, double, double *, double *);void ccubrt(double, double, double *, double *);double cubrt(double);int elco2(double, double, double, double, double, double *, double *);void cdiv2(double, double, double, double, double *, double *);void csqr(double, double, double *, double *);void orient(double, double, double);void latlon(double, double, struct place *);void deg2rad(double, struct coord *);void sincos(struct coord *);void normalize(struct place *);void invert(struct place *);void norm(struct place *, struct place *, struct coord *);void printp(struct place *);void copyplace(struct place *, struct place *);int picut(struct place *, struct place *, double *);int ckcut(struct place *, struct place *, double);double reduce(double);void getsyms(char *);int putsym(struct place *, char *, double, int);void filerror(char *s, char *f);void error(char *s);int doproj(struct place *, int *, int *);int cpoint(int, int, int);int plotpt(struct place *, int);int nocut(struct place *, struct place *, double *);extern int (*projection)(struct place *, double *, double *);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -