0
$\begingroup$

This question already has an answer here:

I am using ParametricPlot to plot some orbits I'm working on. So, suppose I want to plot a circular orbit. Everything works perfect and this is what I get: enter image description here

Now, if I plot a longer circular orbit, i.e. an orbit that runs for a longer time, this is what I get: enter image description here

However, the radial coordinate is constant, as I can see from the plot of the radius: enter image description here

So it seems that ParametricPlot messes up the plot in the long run. It took me some time to realize this, since I'm working with more complicate orbits than these circular ones.

So is there any way I can plot the actual orbits and not these weirds things I get when the parameter is very big?

$\endgroup$

marked as duplicate by m_goldberg, corey979, José Antonio Díaz Navas, Coolwater, Michael E2 plotting Feb 27 '18 at 17:30

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    $\begingroup$ You might get better help if you include your code. $\endgroup$ – Chris K Feb 27 '18 at 4:07
  • 1
    $\begingroup$ Increase PlotPoints. You need to have several points per revolution. $\endgroup$ – Michael E2 Feb 27 '18 at 4:11
  • $\begingroup$ That happens even if you plot {Cos[t],Sin[t]} for very large t. $\endgroup$ – Thiago Feb 27 '18 at 4:11
4
$\begingroup$

An alternative to increasing PlotPoints or MaxRecursion is to use points instead of lines:

ParametricPlot[{Cos[t], Sin[t]}, {t, 0, 5000}] /. Line->Point

enter image description here

To make the points smaller you could use:

ParametricPlot[{Cos[t], Sin[t]}, {t, 0, 5000}] /. Line[x_] -> {AbsolutePointSize[1], Point[x]}

enter image description here

$\endgroup$
  • $\begingroup$ Thank you! How do I adjust the thickness of the points? $\endgroup$ – Thiago Feb 27 '18 at 16:08
  • $\begingroup$ Or you can convert back to a line using FindCurvePath: ParametricPlot[{Cos[t], Sin[t]}, {t, 0, 5000}] /. Line[pts_] :> Line[pts[[FindCurvePath[pts][[1]]]]] $\endgroup$ – Bob Hanlon Feb 27 '18 at 17:08
3
$\begingroup$

As suggested by Michael E2, use the option PlotPoints EDIT and/or as suggested byAkku14 use the option MaxRecursion

EDIT

Manipulate[
 ParametricPlot[{Cos[t], Sin[t]}, {t, 0, 5000}, PlotPoints -> pp, 
  MaxRecursion -> mr], {{pp, Automatic, "PlotPoints"}, 
  Prepend[Range[100, 900, 200], Automatic], 
  ControlType -> SetterBar}, {{mr, Automatic, "MaxRecursion"}, 
  Prepend[Range[2, 14, 2], Automatic], ControlType -> SetterBar}]

enter image description here

$\endgroup$
  • $\begingroup$ You get the same good result without changing PlotPoints, but with MaxRecursion -> 10 $\endgroup$ – Akku14 Feb 27 '18 at 7:52
  • $\begingroup$ @Akku14 - Thanks. Edited to include use of MaxRecursion $\endgroup$ – Bob Hanlon Feb 27 '18 at 15:48

Not the answer you're looking for? Browse other questions tagged or ask your own question.