0

How create an animation of osculation circle to a parametric curve with below circle3D:

circle3D[centre_: {0, 0, 0}, radius_: 1, normal_: {0, 0, 1}, 
  angle_: {0, 2 Pi}] :=  
  Composition[
    Line,
    Map[RotationTransform[{{0, 0, 1}, normal}, centre], #] &, Map[Append[#, Last[centre]] &, #] &,
    Append[DeleteDuplicates[Most[#]], Last[#]] &,
    Level[#, {-2}] &,
    MeshPrimitives[#, 1] &,
    DiscretizeRegion,
    If
    ][First[Differences[angle]] >= 2 Pi,
   Circle[Most[centre], radius],
   Circle[Most[centre], radius, angle]
   ]
SIJA
  • 89
  • 5

2 Answers2

6

For illustrative purposes:

Example parametric curves:

p[t_] := {Cos[t], Sin[t], 0.1 t}
lj[t_] := {Sin[3 t + Pi/2] Cos[t], Sin[3 t + Pi/2] Sin[t], Sin[2 t]}

Osculating circles:

oc[f_, t_, p_, r_] := Module[{tg, n, b},
  {tg, n, b} = FullSimplify[FrenetSerretSystem[f[t], t]][[2]];
  ParametricPlot3D[(f[t] + r Cos[s] tg + r Sin[s] n + r n) /. 
    t -> p, {s, 0, 2 Pi}, PlotStyle -> Red]]

Visualization:

Manipulate[
 Show[f /. {"helix" -> p1, "other" -> p2}, 
  oc[f /. {"helix" -> p, "other" -> lj}, t, a, r]], {f, {"helix", 
   "other"}}, {a, 0, 2 Pi}, {r, {0.1, 0.2}}, 
 Initialization :> (p1 = ParametricPlot3D[p[t], {t, 0, 2 Pi}]; 
   p2 = ParametricPlot3D[lj[t], {t, 0, 2 Pi}])]

enter image description here

ubpdqn
  • 60,617
  • 3
  • 59
  • 148
0

An explanation, not an answer.

An oscultating circle is tangent to the curve and has the same (instantaneous) curvature at the point of tangency as the curve itself.

enter image description here

David G. Stork
  • 41,180
  • 3
  • 34
  • 96