I created the spirograph to illustrate the concept of locus. I later realised that it only works if the locus completes the circuit in 2π. Otherwise, the angle returns discontinuously to 0 when it reaches 2π. I could circumvent the limitation by using a slider to make the angle runs for an interval continuousely beyond 2π. However, introducing the slider will disable the manual movement of the pen that I consider an advantage for pedagogical purpose for my students. Later, I found a very good spirograph construction by Mike May at the Department of Mathematics and Computer Science of Saint Louis University. I found the similarities of the two constructions very remarkable!
It was a great opportunity for me to meet Michael Borcherds, the lead developer of Geogebra, at a workshop during my teaching placement. He went through the construction techniques of the roots of complex numbers, conformal mapping, transformations using matrices, cobweb techniques, etc. I thank Michael for showing me how to put a button to switch the trace on and off in my spirograph and to construct the vector decomposition such that the components and the resultant vectors are all interdependent. The vector decomposition technique was used in the constructing the projectile explorer.
Constructing the "trace-on/off" button
Using the spirograph as an example. It shows a button "Show Trace" (Boolean a) to control the page to show the trace of the locus of the point E. It is done by creating another point TRACE which is defined to be E. The trace is set to on for the point TRACE. However, TRACE is shown on the condition that the boolean value of a is true. Therefore boolean a controls the switching the trace on and off.
Constructing the inter-dependent vector and vector components
The projectile explorer shows the initial velocity of a projectile. The velocity is resolved into its horizontal and vertical components. Adjusting any one of resulting vector and its horizontal and vertical components automatically updates the two remaining vector. Four points P0, pxv0, pv0 and pvy0 define a rectangle whose coordinates are (B2,C2), (D2+B2,C2), (D2+B2,E2+C2) and (B2,E2+C2) respectively. The values (B2,C2) are coordinates of the position P0 projectile at time t0. (C2,D2) are the horizontal and vertical components of the velocity vector v0. A2, B2, C2 and D2 link to the cells on the spreadsheet. Therefore, moving the points on the graph page update the values in the corresponding cells.