return ((CurveSegment) curveSegments.get(n-1)).getEndPoint();
}
else {
CurveSegment cs = (CurveSegment) curveSegments.get(i);
double d = cp - i; // 0 <= d < 1
return cs.forConstructiveParam(
(1-d) * cs.getStartConstructiveParam() +
d * cs.getEndConstructiveParam());
}
}