Thanks to all the thorough answers and comments, I've written the following code for an arbitrary number of epicycles. However, when I apply the formula $\gamma(t)=e^{it}+\frac{1}{2}e^{7it}+\frac{i}{3}e^{-17it}$ and print a few points along the path of the last circle, I do not get the same drawing as you guys do in the comments. Can you see what is wrong? Your help is much appreciated!
Clear["Global`*"]
n = 3;
radii = {1/3, 1/2, 1};
angularVel = {-17, 7, 1}
circles = Table[radii[[i]]*E^(I*angularVel[[i]]*t), {i, 1, n}];
circleCoords =
Table[{N[Re[circles[[i]]]], N[Im[circles[[i]]]]}, {i, 1, n}];
harmonicCircles =
Table[Sum[circleCoords[[j]], {j, i + 1, n}], {i, 1, n - 1}];
AppendTo[harmonicCircles, {0, 0}];
(*--------------------------------------*)
circlesForGraphic =
Table[Circle[harmonicCircles[[i]], radii[[i]]], {i, 1, n - 1}];
PrependTo[circlesForGraphic, Circle[{0, 0}, radii[[n]]]];
ordering =
Table[Text[i, harmonicCircles[[i]], Offset[{3, 3}]], {i, 1, n}];
PrependTo[ordering, Text[n, {0, 0}, Offset[{3, 3}]]];
epicyclesGraphic =
Graphics[{PointSize[0.002], Point[{0, 0}], ordering,
Point[harmonicCircles], circlesForGraphic}, PlotRange -> n*5];
{Slider[Dynamic[t], {0, n}], Dynamic[t]}
Dynamic[circleCoords]
Dynamic[epicyclesGraphic]
var = 300;
data = {};
For[t = 1, t <= var, t = t + 0.1,
AppendTo[data, harmonicCircles[[1]]];
]
ListPlot[data]
ListCurvePathPlot[data, PlotTheme -> "Detailed"]
EDIT: It seems like I'm not adding the last circle. I need to also consider the point rotating along the last circle and trace its path. Let me get to it.