⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 map.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 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 + -