Shape (int x1, int x2, int y1, int y2, boolean forward) { int width = x2 - x1; if (forward) { return new CubicCurve2D.Double(x1, y1, x1 + width * CTRL_PROXIMITY_X, y1, x1 + width * (1.0 - CTRL_PROXIMITY_X), y2, x1 + width, y2); } else { return new CubicCurve2D.Double(x1 + width, y2, x1 + width * (1.0 - CTRL_PROXIMITY_X), y2, x1 + width * CTRL_PROXIMITY_X, y1, x1, y1); } }