Hello,
I've been away for a long time so I'm not completely up to date on the discussions so bear with me please
I have looked at you little applet and I think this is going the right way. However, like some have mentionned, I think this is a bit complex for the "average joe player".
The problem of linking 2 straight lines or more generally 2 points with a tangent direction has been solved in numerous applications through the use of bezier splines (a 4th order function). The curvature function of any spline segment is the 3rd derivative of the function (IIRC). Therefore limiting the curvature is simply checking against that function.
For the player, this translate into simple actions. Several drawing packages (those who do vector drawing, not bitmap drawing) already do this to do polyline shapes: Click down (specify first point), drag and release mouse (specify tangeant), click other point, drag and release (second point and tangeant specified) and the curve is drawn. A simple line is simply 2 click without any dragging. In our case, when the minimal curvature is not respected, the tangeants can be automatically adjusted.
So here are some scenarios:
Case A: Completely new track (see the pictures, sorry for the quality)
1- Click the first point
2- Click the second point and drag
3- Click a third point and drag etc.
Case B: Connecting 2 pieces of existing track
1- Click the junction point anywhere on track 1 (this defines both the point and the tangeant since at the junction the direction must be the same)
2- Click the junction point anywhere on track 2 (this defines both point and tangeant as well).
Case C: Modifying an existing track. Lets say you want to add more bends to avoid going through a lake.
1- Add a new point by clicking on the track (with the "modify" tool)
2- Move this point where you want the bend to go
3- Adjust the curvature using the tangeant handles
How's that? I will try to get down to do a prototype too, if my job stops taking 50-60 hours...