/* -*-ePiX-*- */ #include "epix.h" using namespace ePiX; // Level sets of |sin(x + iy)| = sqrt(-1 + sin^2(x) + cosh^2(y)) = k double k(0); double tmax(void) { if (k <= 1) return Asin(k) - 0.0001; else return M_PI_2; } double fp(double x) { return acosh(sqrt(k*k + 1 - pow(Sin(x), 2))); } double fm(double x) { return -acosh(sqrt(k*k + 1 - pow(Sin(x), 2))); } int main() { picture(P(-M_PI_2, -M_PI), P(M_PI_2, M_PI), "2 x 4in"); begin(); P pO(0,0); label(pO, P(2,-4), "$O$", br); label(P(-M_PI_2, 0), P(-4, 4), "$-\\frac{\\pi}{2}$", t); label(P( M_PI_2, 0), P(0, 4), "$\\frac{\\pi}{2}$", t); bold(); line(P(xmin(), 0), P(xmax(), 0), 20); line(P(0, -2), P(0, 2), 20); int N(20); // fake continuation of curves at level 1 double dx(0.15); line(P(M_PI_2, 0), P(M_PI_2 + dx, dx)); line(P(M_PI_2, 0), P(M_PI_2 + dx, -dx)); line(P(-M_PI_2, 0), P(-M_PI_2 - dx, dx)); line(P(-M_PI_2, 0), P(-M_PI_2 - dx, -dx)); font_size("tiny"); set_crop(); k = 0.35; plot(fp, -tmax(), tmax(), 6*N); plot(fm, -tmax(), tmax(), 6*N); label(P(0, fp(0)), P(2,-2), "I", br); k = 0.5; plot(fp, -tmax(), tmax(), 5*N); plot(fm, -tmax(), tmax(), 5*N); label(P(0, fp(0)), P(2,-2), "II", br); k = sqrt(0.5); plot(fp, -tmax(), tmax(), 4*N); plot(fm, -tmax(), tmax(), 4*N); label(P(0, fp(0)), P(2,-2), "III", br); font_size("scriptsize"); k = 1; plot(fp, -tmax(), tmax(), N); plot(fm, -tmax(), tmax(), N); label(P(0, fp(0)), P(2,-2), "IV", br); k = sqrt(2); plot(fp, -tmax(), tmax(), 2*N); plot(fm, -tmax(), tmax(), 2*N); label(P(0, fp(0)), P(2,-2), "V", br); k = 2; plot(fp, -tmax(), tmax(), N); plot(fm, -tmax(), tmax(), N); label(P(0, fp(0)), P(2,-2), "VI", br); k = 2*sqrt(2); plot(fp, -tmax(), tmax(), N); plot(fm, -tmax(), tmax(), N); label(P(0, fp(0)), P(2,-2), "VII", br); k = 4; plot(fp, -tmax(), tmax(), N); plot(fm, -tmax(), tmax(), N); label(P(0, fp(0)), P(2,-2), "VIII", br); tikz_format(); end(); }