Your task for this project is to write a Spyrograph (a python simulation of a Spirograph). The program should allow the user to enter the parameters for a Spirograph drawing, and then produce the corresponding picture in a window. The picture created by the Spirograph (a hypotrochoid) depends on three parameters: <\ul>
• R the radius of the fixed circle.
• r the radius of the rolling circle
• d the distance of the pen from the center of the rolling circleThe points of the hypotrochoid are the described by the parametric equations:
x(t) = (R-r) cost + dcos (t(R-r)/r)
y(t) = (R-r) sint - dsin (t(R-r)/r)
Here, t can be thought of as the time parameter, and (assuming you are using radians) every 2π the rolling circle will go around the fixed circle once. Assuming R and r are positive integers, the number of times the rolling circle goes around the fixed circle before it starts to repeat itself is r/gcd(R, r) (that is the radius of the rolling circle divided by the greatest common divisor of the rolling circle and the fixed circle).
A good overview of the maths can be found at [url removed, login to view]
CORRECTION: The y(t) equation has been corrected above on 8 April. If you use the old equation, you will not lose marks.
To check if you are drawing the hypotrochoid correctly using the correct y(t) equation, try the values given on this link and see if you get similar plots.
You are required to write the following Python functions. Make sure you understand where each function fits into the system described above.
1. docstring # (20%)
The docstring is the comment at the start of the Python file. Your docstring should include:
o Your name and student number
o A short description of a Spirograph
o A description of how you calculated the hypotrochoid
o Instructions on how to interact with your project
o References to any resources used
2. getInputs(): # (10%)
This function should prompt the user for the values of the drawing parameters, and return these values to the calling program.
3. getNumberOfPoints(R, r, prec): # R, r, prec>0 (10%)
This function should determine the number of points (x,y coordinates) to calculate, assuming that every