public static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right) { double x1 = src.getX1(); double y1 = src.getY1(); double cx = src.getCtrlX(); double cy = src.getCtrlY(); double x2 = src.getX2(); double y2 = src.getY2(); double cx1 = (x1 + cx) / 2.0; double cy1 = (y1 + cy) / 2.0; double cx2 = (x2 + cx) / 2.0; double cy2 = (y2 + cy) / 2.0; cx = (cx1 + cx2) / 2.0; cy = (cy1 + cy2) / 2.0; if (left != null) { left.setCurve(x1, y1, cx1, cy1, cx, cy); } if (right != null) { right.setCurve(cx, cy, cx2, cy2, x2, y2); } }