/* -*-ePiX-*- */ #include "epix.h" using namespace ePiX; void displ(const P& tail, const P& dir, const std::string& msgt = "", const std::string& msgh = "") { P mid(tail + 0.5*dir); arrow(tail, mid); line(mid, tail + dir); if (msgt != "") label(tail, -2*dir, msgt, l); if (msgh != "") label(tail + dir, 2*dir, msgh, r); } int main() { picture(P(0, -1), P(5, 3), "4 x 3.2in"); begin(); arrow_inset(0.5); arrow_ratio(2); arrow_width(2); P dir1(1.75, 1), dir2(-0.75*J(dir1)), dX(1,0), pO(0,0), pA(dir1), pB(dir2), pC(dir1 + dir2), pP(1.5,2.25), pQ(pP + dir1), pQ1(pP + dir1 + dir2), pQ2(pP + dir2), pPp(pQ + dX), pQp(pQ1 + dX); bold(); line(pO, P(4, 0)); line(pO, P(0, 3)); displ(pP, dir1, "$P$", "$Q$"); displ(pO, dir1, "$O$", "$A$"); displ(pQ, dir2); displ(pO, dir2); displ(pPp, dir2); dashed(); dash_size(6); line(pA, pC); line(pB, pC); line(pP, pQ2); line(pQ2, pQ1); label(pB, P(-2,-2), "$B$", bl); label(pC, P( 2,-2), "$C$", br); label(pQ1, P(2,-2), "$Q_{1}$", br); label(pQ2, P(4, 8), "$Q_{2}$", t); label(pPp, P(2, 2), "$P'$", tr); label(pQp, P(2, 2), "$Q'$", tr); tikz_format(); end(); }