/** * Subdivides this Quadradic curve into two curves at given t. * @param q0 if non-null contains portion of curve from 0->t. * @param q1 if non-null contains portion of curve from t->1. */ public void subdivide(double t, Quadradic q0, Quadradic q1) { Point2D.Double np = eval(t); Point2D.Double npd = evalDt(t); if (q0 != null) { q0.p1.x = p1.x; q0.p1.y = p1.y; q0.p2.x = np.x-(npd.x*t*.5); q0.p2.y = np.y-(npd.y*t*.5); q0.p3.x = np.x; q0.p3.y = np.y; } if (q1 != null) { q1.p1.x = np.x; q1.p1.y = np.y; q1.p2.x = np.x+(npd.x*(1-t)*.5); q1.p2.y = np.y+(npd.y*(1-t)*.5); q1.p3.x = p3.x; q1.p3.y = p3.y; } }
/** * Subdivides this Quadradic curve into two curves at given t. * @param q0 if non-null contains portion of curve from 0->t. * @param q1 if non-null contains portion of curve from t->1. */ public void subdivide(double t, Quadradic q0, Quadradic q1) { Point2D.Double np = eval(t); Point2D.Double npd = evalDt(t); if (q0 != null) { q0.p1.x = p1.x; q0.p1.y = p1.y; q0.p2.x = np.x-(npd.x*t*.5); q0.p2.y = np.y-(npd.y*t*.5); q0.p3.x = np.x; q0.p3.y = np.y; } if (q1 != null) { q1.p1.x = np.x; q1.p1.y = np.y; q1.p2.x = np.x+(npd.x*(1-t)*.5); q1.p2.y = np.y+(npd.y*(1-t)*.5); q1.p3.x = p3.x; q1.p3.y = p3.y; } }
/** * Subdivides this Quadradic curve into two curves at given t. * @param q0 if non-null contains portion of curve from 0->t. * @param q1 if non-null contains portion of curve from t->1. */ public void subdivide(double t, Quadradic q0, Quadradic q1) { Point2D.Double np = eval(t); Point2D.Double npd = evalDt(t); if (q0 != null) { q0.p1.x = p1.x; q0.p1.y = p1.y; q0.p2.x = np.x-(npd.x*t*.5); q0.p2.y = np.y-(npd.y*t*.5); q0.p3.x = np.x; q0.p3.y = np.y; } if (q1 != null) { q1.p1.x = np.x; q1.p1.y = np.y; q1.p2.x = np.x+(npd.x*(1-t)*.5); q1.p2.y = np.y+(npd.y*(1-t)*.5); q1.p3.x = p3.x; q1.p3.y = p3.y; } }
public Segment getSegment(double t0, double t1) { double dt = t1-t0; Point2D.Double np1 = eval(t0); Point2D.Double dp1 = evalDt(t0); Point2D.Double np2 = new Point2D.Double (np1.x+.5*dt*dp1.x, np1.y+.5*dt*dp1.y); Point2D.Double np3 = eval(t1); return new Quadradic(np1, np2, np3); }
public Segment getSegment(double t0, double t1) { double dt = t1-t0; Point2D.Double np1 = eval(t0); Point2D.Double dp1 = evalDt(t0); Point2D.Double np2 = new Point2D.Double (np1.x+.5*dt*dp1.x, np1.y+.5*dt*dp1.y); Point2D.Double np3 = eval(t1); return new Quadradic(np1, np2, np3); }
public Segment getSegment(double t0, double t1) { double dt = t1-t0; Point2D.Double np1 = eval(t0); Point2D.Double dp1 = evalDt(t0); Point2D.Double np2 = new Point2D.Double (np1.x+.5*dt*dp1.x, np1.y+.5*dt*dp1.y); Point2D.Double np3 = eval(t1); return new Quadradic(np1, np2, np3); }