To model smooth curves, we can implement Bezier splines, which are mathematically defined from a set of control points. These control points modify the curvature of the spline.
Besides the basic requirements for this assignment, the applet has an input mode that will force all splines to be C1 smooth/continuous. When you place a segment endpoint, it will automatically place the next control point such that the first tangent of the new segment and the second tangent of the old segment are equal. Therefore, the curve will be continuous at the endpoint. When control points are modified, this charecteristic is preserved. You can toggle smoothness by pressing the "s" key.
You can also show just the features of interest. The control points, controllines (the lines between the control points) and the curve itself can be toggled on and off.
The source is in the files: