Apart from the headache-inducing issue of calculating the geometry of the edege of the visible curved surface of a rotated
cyclinder, most of the difficulty has been managing the animations and events. In particular it appears that an active animation
cannot be stopped and deleted or restarted without invoking any associated onend
event. The temporary solution, of
dubious robustness, uses a global flag to suppress subsequent event propagation.