I am trying to redraw this illustration for the Poincaré section using Mathematica:
For which I used this code as a start:
fullData =
Table[With[{\[Theta] = 2 \[Pi] u, \[CurlyPhi] =
2 \[Pi] v}, {(2 + Cos[\[CurlyPhi]]) Cos[\[Theta]],
Sin[\[CurlyPhi]], (2 + Cos[\[CurlyPhi]]) Sin[\[Theta]]}], {u, 0,
1, 0.001}, {v, 0, 1, 0.003}] // Flatten[#, 1] &;
tol = 0.02;
secData = Select[fullData, Abs[#[[2]]] < tol &];
fullPlot = Graphics3D[{Blue, PointSize[Small], Point[fullData]}];
sectionPlot = Graphics3D[{Green, PointSize[Small], Point[secData]}];
planePlot =
Graphics3D[{Yellow, Opacity[0.4],
Polygon[{{-3, 0, -3}, {3, 0, -3}, {3, 0, 3}, {-3, 0, 3}}]}];
Show[fullPlot, sectionPlot, planePlot, Axes -> True,
AxesLabel -> {Style["x(\[Tau])", 14], Style["x'(\[Tau])", 14],
Style["x(\[Tau]-\[Tau]₀)", 14]}, BoxRatios -> {1, 1, 1},
Lighting -> "Neutral", ImageSize -> Large]
Is there a better way by which I can draw a similar image, or any improvement I can make on this starting code to get a close image like the above figure?


NDSolveand itsWhenEventfeatures to detect crossings of the section plane. Simple example:NDSolve[{y[0] == 0, y'[0] == 1, y''[t] == -y[t], WhenEvent[y[t] == 0, Sow[t]]}, y[t], {t, 0, 10}] // Reap$\endgroup$