Ejemplo n.º 1
0
	double	theta; \
	double	m, n; \
	double	two_r_m, two_r_n, rm, rn, hm, hn; \
	double	cp0, sp0;
#define PROJ_LIB__
#include	<lib_proj.h>
PROJ_HEAD(oea, "Oblated Equal Area") "\n\tMisc Sph\n\tn= m= theta=";
FORWARD(s_forward); /* sphere */
	double Az, M, N, cp, sp, cl, shz;

	cp = cos(lp.phi);
	sp = sin(lp.phi);
	cl = cos(lp.lam);
	Az = proj_atan2(cp * sin(lp.lam), P->cp0 * sp - P->sp0 * cp * cl) + P->theta;
	shz = sin(0.5 * proj_acos(P->sp0 * sp + P->cp0 * cp * cl));
	M = proj_asin(shz * sin(Az));
	N = proj_asin(shz * cos(Az) * cos(M) / cos(M * P->two_r_m));
	xy.y = P->n * sin(N * P->two_r_n);
	xy.x = P->m * sin(M * P->two_r_m) * cos(N) / cos(N * P->two_r_n);
	return (xy);
}
INVERSE(s_inverse); /* sphere */
	double N, M, xp, yp, z, Az, cz, sz, cAz;

	N = P->hn * proj_asin(xy.y * P->rn);
	M = P->hm * proj_asin(xy.x * P->rm * cos(N * P->two_r_n) / cos(N));
	xp = 2. * sin(M);
	yp = 2. * sin(N) * cos(M * P->two_r_m) / cos(M);
	cAz = cos(Az = proj_atan2(xp, yp) - P->theta);
	z = 2. * proj_asin(0.5 * hypot(xp, yp));
	sz = sin(z);
Ejemplo n.º 2
0
*/
#define PROJ_PARMS__ \
  double  n, C_x, C_y;
#define PROJ_LIB__
#include  <lib_proj.h>
PROJ_HEAD(urmfps, "Urmaev Flat-Polar Sinusoidal") "\n\tPCyl, Sph.\n\tn=";
PROJ_HEAD(wag1, "Wagner I (Kavraisky VI)") "\n\tPCyl, Sph.";
PROJ_HEAD(weren2, "Werenskiold II") "\n\tPCyl, Sph.";
#define UCX  0.8773826753016616405461459345
#define UCY  1.139753528477388820996781626
#define WCX  0.8773826753016616405461459345
#define WCY  1.316074012952492460819218901
#define WCP  0.8660254037844386467637231707
#define WNM  1.139753528477388820996781625
FORWARD(s_forward); /* sphere */
lp.phi = proj_asin(P->n * sin(lp.phi));
xy.x = P->C_x * lp.lam * cos(lp.phi);
xy.y = P->C_y * lp.phi;
return (xy);
}
INVERSE(s_inverse); /* sphere */
xy.y /= P->C_y;
lp.phi = proj_asin(sin(xy.y) / P->n);
lp.lam = xy.x / (P->C_x * cos(xy.y));
return (lp);
}
FREEUP;
if (P) free(P);
}
static PROJ *
setup(PROJ *P) {
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#define PROJ_LIB__
# include  <lib_proj.h>
PROJ_HEAD(wag2, "Wagner II") "\n\tPCyl., Sph.";
#define CX 0.9248327337222211159780313106
#define CY 1.387249100583331673967046966
#define CM2 0.8855017059025996450524064573
#define CM1 0.8802234877744129284498330453
FORWARD(s_forward); /* spheroid */
  (void) P; /* avoid warning */
  lp.phi = proj_asin(CM1 * sin(CM2 * lp.phi));
  xy.x = CX * lp.lam * cos(lp.phi);
  xy.y = CY * lp.phi;
  return (xy);
}
INVERSE(s_inverse); /* spheroid */
  (void) P; /* avoid warning */
  lp.phi = xy.y / CY;
  lp.lam = xy.x / (CX * cos(lp.phi));
  lp.phi = proj_asin(sin(lp.phi) / CM1) / CM2;
  return (lp);
}
FREEUP; if (P) free(P); }
ENTRY0(wag2) P->es = 0.; P->inv = s_inverse; P->fwd = s_forward; ENDENTRY(P)
/*
** $Log: proj_wag2.c,v $