/* -*-ePiX-*- */ #include "epix.h" using namespace ePiX; P sw(9, 748), ne(781, 32); double XSZ(1), YSZ(1); // Cartesian dimensions // to picture P pt(double x, double y) { return P(XSZ*(x-sw.x1())/(ne.x1() - sw.x1()), YSZ*(y-sw.x2())/(ne.x2() - sw.x2())); } void my_spline(const P& p1, const P& p2, const P& p3, const P& p4) { spline(p1, p2, p3, p4); spot(p1); spot(p2); spot(p3); spot(p4); } int main() { picture(P(0,0), P(1,1), "3 x 3in"); begin(); P p1(pt(237, 467)), p2(pt(540, 225)); P ctrl_alpha1(pt(385, 511)), ctrl_alpha2(pt(508, 381)); P ctrl_beta1(pt(392, 243)), ctrl_beta2(pt(240, 330)); bold(); spline(p1, ctrl_alpha1, ctrl_alpha2, p2); spline(p2, ctrl_beta1, ctrl_beta2, p1); arrow_ratio(2); arrow_inset(0.75); arrow(pt(307, 498), pt(354, 502), pt(391, 475)); line(P(0,0), P(1,0)); line(P(0,0), P(0,1)); label(P(1,0), P(2,0), "$V$", r); label(P(0,1), P(0,2), "$p$", t); label(p1, P(-2,-2), "$1$", bl); label(p2, P( 2, 2), "$2$", tr); label(ctrl_alpha2, "$\\alpha$"); label(0.5*(ctrl_beta1 + ctrl_beta2), "$\\beta$"); label_angle(0); label(P(0.5*(xmin() + xmax()), ymin()), P(0, -24), "\\textsc{Fig.}~2.", b); pst_format(); end(); }