# How do I emulate MATLAB's comet plot?

I have tried the following code:

ParametricPlot[{Sin[12 u] Cos[u], Sin[12 u] Sin[u]}, {u, 0, 2 Pi}]


and it produced the following image:

MATLAB has a comet command that will draw this parametric plot in real time, allowing the viewer to watch as the particle traces out the plot. Is there a way to do this in Mathematica?

-

You can use Animate, you'll note that I added some options, remove them to see why :)

Animate[
ParametricPlot[{Sin[12 u] Cos[u], Sin[12 u] Sin[u]}, {u, 0, umax},
PlotRange -> {-1, 1},
PerformanceGoal -> "Quality"],
{umax, 0.1, 2 Pi}]


You can change Animate to Manipulate if you wish to slide back and forth manually as well

-
frames = Table[
ParametricPlot[{Sin[12 u] Cos[u], Sin[12 u] Sin[u]}, {u, 0, t},
PlotRange -> {{-1, 1}, {-1, 1}}], {t, .001, 2 Pi, 2.1 Pi/100}]


and then either

ListAnimate[frames]


or

Export["movie.gif", frames]


depending on what you want. The latter yields

You can also do this:

 Manipulate[ParametricPlot[{Sin[12 u] Cos[u], Sin[12 u] Sin[u]}, {u, 0, t},
PlotRange -> {{-1, 1}, {-1, 1}}], {t, .01, 2 Pi}]

-
I just went back and applied this to some of my diff. eq. homework and this is amazing. Thank you! –  Reid Dec 27 '12 at 23:51
@Reid: Glad to help! –  JohnD Dec 28 '12 at 1:11

Unchecked :

 Needs["NETLink"]
m = CreateCOMObject["matlab.application"]

m@Execute["t = 0:.01:2*pi;
x = sin(12*t).*(cos(t));
y = sin(12*t).*(sin(t));
comet(x,y);"]
`

First seen this here.

-