#define CE3Y 0.8444764006315424029858890519 #define CE3A 1.0 #define CE3B 0.4052847345693510857755178528 #define CK7X 0.8660254037844386467637231707 #define CK7Y 1.0 #define CK7A 0.0 #define CK7B 0.3039635509270133143316383896 #include <lib_proj.h> PROJ_HEAD(eck3, "Eckert III") "\n\tPCyl, Sph."; PROJ_HEAD(putp1, "Putnins P1") "\n\tPCyl, Sph."; PROJ_HEAD(putp1p, "Putnins P1'") "\n\tPCyl, Sph."; PROJ_HEAD(wag6, "Wagner VI") "\n\tPCyl, Sph."; PROJ_HEAD(kav7, "Kavraisky VII") "\n\tPCyl, Sph."; FORWARD(s_forward); /* spheroid */ xy.y = P->C_y * lp.phi; xy.x = P->C_x * lp.lam * (P->A + proj_sqrt(1. - P->B * lp.phi * lp.phi)); return (xy); } INVERSE(s_inverse); /* spheroid */ lp.phi = xy.y / P->C_y; lp.lam = xy.x / (P->C_x * (P->A + proj_sqrt(1. - P->B * lp.phi * lp.phi))); return (lp); } FREEUP; if (P) free(P); } static PROJ * setup(PROJ *P) { P->es = 0.; P->inv = s_inverse; P->fwd = s_forward; return P; }
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** 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(fahey, "Fahey") "\n\tPcyl, Sph."; #define TOL 1e-6 FORWARD(s_forward); /* spheroid */ (void) P; /* avoid warning */ xy.y = 1.819152 * ( xy.x = tan(0.5 * lp.phi) ); xy.x = 0.819152 * lp.lam * proj_sqrt(1 - xy.x * xy.x); return (xy); } INVERSE(s_inverse); /* spheroid */ (void) P; /* avoid warning */ lp.phi = 2. * atan(xy.y /= 1.819152); lp.lam = fabs(xy.y = 1. - xy.y * xy.y) < TOL ? 0. : xy.x / (0.819152 * sqrt(xy.y)); return (lp); } FREEUP; if (P) free(P); } ENTRY0(fahey) P->es = 0.; P->inv = s_inverse; P->fwd = s_forward;