/* -*-ePiX-*- */ #include "epix.h" using namespace ePiX; const double tau(0.4); double CSH(cosh(tau)), SNH(sinh(tau)); const double MAX(3.5); const double MAX2(0.7*MAX); const double TMAX(asinh(MAX2)); P boost(const P& arg) { double x(arg.x1()), y(arg.x2()); return P(CSH*x + SNH*y, CSH*y + SNH*x); } P fp(double t) { return P(sinh(t), cosh(t)); } P fm(double t) { return -fp(t); } int main() { picture(P(-MAX,-MAX), P(MAX,MAX), "3.5 x 3.5in"); begin(); label(P(0, ymin()-0.25), P(0,-4), "\\textsc{Fig.~4.}", b); P O(0,0), U1(MAX2,MAX2), U2(-U1), V1(-MAX2,MAX2), V2(-V1); P T(0,3), T1(boost(T)), X(3), X1(boost(X)); P L(0,1), F(boost(L)), G(boost(P(1,1))), H(boost(P(1,0))); bold(); line(P(-MAX), P(MAX)); line(P(0,-MAX), P(0,MAX)); h_axis(O, P(3), 3); v_axis(O, P(0,3), 3); line(O, T1); line(O, X1); line(G, H); line(G, boost(P(-1,1))); plot(fp, -TMAX, TMAX, 40); plot(fm, -TMAX, TMAX, 40); dashed(); line(U1, U2); line(V1, V2); font_size("footnotesize"); label(O, P(-12,-4), "$O$", bl); label(P(xmax()), P(0,-4), "$X$", b); label(X1, P(2,0), "$X_1$", tr); label(P(0,ymax()), P(-1,0), "$T$", l); label(T1, P(0,2), "$T_1$", tr); label(U1, P( 1,-1), "$U$", br); label(U2, P(-1, 1), "$U'$", tl); label(V1, P(-2,-2), "$V$", bl); label(V2, P( 2, 2), "$V'$", tr); label(L, P(-1, 3), "$L$", tl); label(P(0,-1), P(-2, -3), "$L'$", bl); label(F, P( 0, 2), "$F$", tl); label(G, P( 2, 0), "$G$", br); label(H, P( 0,-2), "$H$", br); label(fp( TMAX), P(-1,1), "$K$", tl); label(fp(-TMAX), P( 2,2), "$M$", tr); label(fm( TMAX), P( 1,-1), "$K'$", br); label(fm(-TMAX), P(-2,-2), "$M'$", bl); tikz_format(); end(); }