Bug Fixes in Educational
Improved variable-speed slewing.
Instead of a kludgy mess of nested if's to implement a triangular speed profile, I am now using much simpler code to implement a cosine-shaped profile.
There's a little bit of asymmetry in the profile (i.e., the ending speed doesn't quite get down to the level of the starting speed, so the ending is a little bit abrupt).
This is a consequence of the speed being determined for position r, and then applied over the interval (r+dr).
The solution is to make the determined speed the average of speed(r) and speed(r+dr), but I'm not sure it's worth the extra math.
Let me know if the asymmetry is bothersome, or if you have a clean solution for it...