/* -*-ePiX-*- */ #include "epix.h" using namespace ePiX; int main() { picture(P(-1, -1), P(1, 1), "2 x 2in"); begin(); /* arrow_inset(0.5); arrow_ratio(2); arrow_width(2); */ double x0(4), y0(0.5), th(Atan(y0/x0)); P pO(0,0,0), pP(1,0,1), pq(1,0,0), pQ(1,0,-1), pQ1(cis(M_PI/3)); camera.at(P(x0, y0, 1.25)).range(0); bold(); ellipse(P(0,0,-1), E_1, E_2); ellipse(P(0,0, 0), E_1, E_2, -M_PI_2+th, M_PI_2+th); ellipse(P(0,0, 1), E_1, E_2); line(cyl(1, -M_PI_2+th, -1), cyl(1, -M_PI_2+th, 1)); line(cyl(1, M_PI_2+th, -1), cyl(1, M_PI_2+th, 1)); line(pQ, pP); line(P(0,-1,0), P(0,1,0)); line(pP, pQ1); line(pO, pq); line(pO, pQ1); dashed(); ellipse(P(0,0, 0), E_1, E_2, M_PI_2+th, 3*M_PI_2+th, 40); label(pP, P(-2,-4), "$P$", bl); label(pO, P( 0, 2), "$O$", t); label(pq, P(-2,-4), "$q$", bl); label(pQ, P( 0,-4), "$Q$", b); label(pQ1, P(0,-4), "$Q'$", b); tikz_format(); end(); }