I am back with another problem on the circular spring. With the help of Wolfram Community, I was able to get a spring to oscillate along an arc using trig functions and PolarPlot[]. The issue at hand now is that the oscillations of the springs do not match the oscillations of the masses along the arcs. For some of the springs, they compress when they should be expanding and vice versa. However, one of the springs does compress and expand properly. I cannot see the error in the time-dependent angles defined within the PolarPlot. Can anyone else spot the error(s)?
Here is code for circular springs:
\[Theta]1[t_] =
1/72 (40 + E^(-I Sqrt[3/10] t) + E^(I Sqrt[3/10] t) +
3 E^(-((I t)/Sqrt[10])) + 3 E^((I t)/Sqrt[10])) \[Pi];
\[Theta]2[t_] =
1/72 (88 + E^(-I Sqrt[3/10] t) + E^(I Sqrt[3/10] t) -
3 E^(-((I t)/Sqrt[10])) - 3 E^((I t)/Sqrt[10])) \[Pi];
\[Theta]3[t_] =
1/36 (68 - E^(-I Sqrt[3/10] t) - E^(I Sqrt[3/10] t)) \[Pi];
Manipulate[
Show[
PolarPlot[
{
(1 + 0.2*
TriangleWave[(3*x)/
2*( \[Theta]2[time] - \[Theta]1[time] - \[Theta]3[time] ) ])
},
{x, \[Theta]2[time], \[Theta]1[time]},
AspectRatio -> Automatic,
Axes -> None,
PlotRange -> { -1.2*1, 1.2*1 },
PerformanceGoal -> "Quality",
ImageSize -> Medium
],
PolarPlot[
{
(1 + 0.2*
TriangleWave[(3*x)/
2*(\[Theta]2[time] - \[Theta]1[time] - \[Theta]3[time])])
},
{x, \[Theta]2[time], \[Theta]3[time]},
AspectRatio -> Automatic,
Axes -> None,
PlotRange -> { -1.2*1, 1.2*1 },
PerformanceGoal -> "Quality",
ImageSize -> Medium
],
PolarPlot[
{
(1 + 0.2*
TriangleWave[(3*x)/
2*(\[Theta]2[time] - \[Theta]1[time] - \[Theta]3[time] )])
},
{x, \[Theta]1[time], \[Theta]3[time] - 2 \[Pi]},
AspectRatio -> Automatic,
Axes -> None,
PlotRange -> { -1.2*1, 1.2*1 },
PerformanceGoal -> "Quality",
ImageSize -> Medium
],
Graphics[{
{
Circle[{0, 0}, 1]
},
{(* Mass-1 *)
Directive[ RGBColor[0, 0, 1], Opacity[0.85] ],
Disk[
{
1*Cos[ \[Theta]1[time] ],
1*Sin[ \[Theta]1[time] ]
},
1/15
]
(* Mass-1 *)},
{(* Mass-2 *)
Directive[ RGBColor[0, 0, 1], Opacity[0.85] ],
Disk[
{
1*Cos[ \[Theta]2[time] ],
1*Sin[ \[Theta]2[time] ]
},
1/15
]
(* Mass-2 *)},
{(* Mass-3 *)
Directive[ RGBColor[0, 0, 1], Opacity[0.85] ],
Disk[
{
1*Cos[ \[Theta]3[time] ],
1*Sin[ \[Theta]3[time] ]
},
1/15
]
(* Mass-3 *)}
}]
],
{
{time, 1 E - 20},
1 E - 20,
120,
ControlType -> Trigger,
DefaultDuration -> 120.0,
DisplayAllSteps -> True,
AnimationRate -> 3.0
},
TrackedSymbols :> {time}
]


