# Fix dynamic color overlap (manipulate/animate)

I am making a Manipulate graphic that involves two points rotating on a circle with their trajectories being traced in two separate colors. Everything works fine until each point makes half a rotation, after which the color of the trajectory of the first point overwrites the overlapping trajectory of the second, but not vice versa. I am looking for a way to make it such that when blue catches up to the tail of red it begins to write over in blue and when red catches up to the tail of blue it begins to write over in red without simply hardcoding in ranges (in case I want to add more points in different spots). Ideally, I will be saving these as animations at some point.

Here is my code:

Manipulate[
Show[ParametricPlot[{{-Cos[x], -Sin[x]}, {Cos[x], Sin[x]}}, {x, 0,
a}, PlotRange -> {{-1.05, 1.05}, {-1.05, 1.05}},
PlotStyle -> {Red, Blue}, Ticks -> False],
ListPolarPlot[{{a, 1}}, PlotRange -> All,
PlotStyle -> PointSize[.05]],
ListPolarPlot[{{Pi + a, 1}}, PlotRange -> All,
PlotStyle -> {PointSize[.05], Red}]], {a, 0.01, 2*Pi}]

• The points are not overwriting any lines. Two parametric plots (i.e. two arcs) are drawn for each value of a. The red arc is drawn first, then the blue one is drawn. When the arcs get larger than Pi, the two arcs overlap. Since the blue one is drawn last it overwrites the red one. Feb 6 at 1:08
• I assumed that was the case. Is there any way to prevent that?
– Ztan
Feb 6 at 1:26
• Offset the tracks by changing the argument of the ParametricPlot to {0.993 {-Cos[x], -Sin[x]}, 1.007 {Cos[x], Sin[x]}} Feb 6 at 2:52

This probably counts as hardcoding ranges, but it works:

Manipulate[
Show[ParametricPlot[{{-Cos[x], -Sin[x]}, {Cos[x], Sin[x]}}, {x,
Max[{0, a - Pi}], a}, PlotRange -> {{-1.05, 1.05}, {-1.05, 1.05}},
PlotStyle -> {Red, Blue}, Ticks -> False],
ListPolarPlot[{{a, 1}}, PlotRange -> All,
PlotStyle -> PointSize[.05]],
ListPolarPlot[{{Pi + a, 1}}, PlotRange -> All,
PlotStyle -> {PointSize[.05], Red}]], {a, 0.01, 2*Pi}] 