I am trying to plot a general helix with variable parameters (via sliders) and its associated FrenetSerretSystem. The helix doesn't show.
helix = {a*Cos[(\[Omega]*s)/c], a*Sin[(\[Omega]*s)/c], (b*s)/c};
basis = Last[FrenetSerretSystem[helix, s]] // Simplify;
{tangent, normal, binormal} =
Map[Arrow[{helix, helix + #}] &, basis];
tangent
Manipulate[
Show[ParametricPlot3D[helix, {s, 0, 10}, PlotStyle -> {Thick, Black},
PerformanceGoal -> "Quality",] // Evaluate,
Graphics3D[{Thick, Blue, Dynamic[tangent], Red, Dynamic[normal],
Purple, Dynamic[binormal]}],
AxesLabel -> {"x", "y", "z"},
AxesEdge -> {{-1, -1}, {-1, -1}, {-1, -1}},
Boxed -> False,
PlotRange -> All] // Evaluate, {{s, 5}, 0, 10}, {{a, 1}, 0,
10}, {{b, 1}, 0, 10}, {{c, 1}, 0, 10}, {{\[Omega], 5}, 0, 10},
ContinuousAction -> True,
SaveDefinitions -> True,
Initialization :> ({a = 2, b = 1, c = 1, \[Omega] = 5})
]
If I fix the parameters it is working:
With[{a = 2, b = 1,
c = 1, \[Omega] = 5}, \[Beta][s_] = {a*Cos[(\[Omega]*s)/c],
a*Sin[(\[Omega]*s)/c], (b*s)/c}];
basis = Last[FrenetSerretSystem[\[Beta][s], s]] // Simplify;
{tangent, normal, binormal} =
Map[Arrow[{\[Beta][s], \[Beta][s] + #}] &, basis];
pp = ParametricPlot3D[\[Beta][s], {s, 0, 10},
PlotStyle -> {Thick, Black}, PerformanceGoal -> "Quality"];
fs = Graphics3D[{Thick, Blue, tangent, Red, normal, Purple, binormal}];
Manipulate[Show[pp, fs,
AxesLabel -> {"x", "y", "z"},
AxesEdge -> {{-1, -1}, {-1, -1}, {-1, -1}},
Boxed -> False,
PlotRange -> All
] // Evaluate, {{s, 2}, 0, 10},
ContinuousAction -> True
]
What am I missing?