From: Bob Hanlon on 24 Mar 2010 05:33 The code to which you linked works if you take out the outdated option LightSources. You can use Lighting instead (I didn't bother). TubePlotFrenet[curve_List, {var_, min_, max_}, radius_, opts___] := Module[ {tangent, unitTangent, normal, unitNormal, biNormal}, tangent = D[curve, t]; unitTangent = tangent/Sqrt[tangent.tangent]; normal = D[unitTangent, t]; unitNormal = normal/Sqrt[normal.normal]; biNormal = Cross[unitTangent, unitNormal]; ParametricPlot3D[curve + radius Cos[s] unitNormal + radius Sin[s] biNormal // Evaluate, {var, min, max}, {s, 0, 2 Pi}, opts]] trefoil = {Sin[3 t], Sin[t] + 2 Sin[2 t], Cos[t] - 2 Cos[2 t]}; TubePlotFrenet[trefoil, {t, 0, 2*Pi}, 0.3, Axes -> None, Boxed -> False, ViewPoint -> {10, 0, 0}, PlotPoints -> {64, 16}, PlotLabel -> "The Trefoil Knot"] TubePlot[curve_List, {var_, min_, max_}, radius_, crossVector_List: {1, 1, 1}, opts___] := Module[ {tangent, unitTangent, normal, unitNormal, biNormal}, tangent = D[curve, t]; unitTangent = tangent/Sqrt[tangent.tangent]; normal = Cross[tangent, crossVector]; unitNormal = normal/Sqrt[normal.normal]; biNormal = Cross[unitTangent, unitNormal]; ParametricPlot3D[curve + radius Cos[s] unitNormal + radius Sin[s] biNormal // Evaluate, {var, min, max}, {s, 0, 2 Pi}, opts]] TorusKnotPlot[p_, q_, opts___] := TubePlot[{Cos[t] (1 + .5 Cos[(q/p) t]), Sin[t] (1 + .5 Cos[(q/p) t]), .5 Sin[(q/p) t]}, {t, 0, 2 Pi p}, .1, {0, 0, 1}, ViewPoint -> {0, 0, 1}, Boxed -> False, Axes -> False, opts] TorusKnotPlot[3, 5, PlotPoints -> {128, 16}, PlotLabel -> "The (3,5) Torus Knot"] Alternatively, in a 3D plot replace Line with Tube. Example from Doc Center http://reference.wolfram.com/mathematica/ref/Tube.html ParametricPlot3D[ {Cos[2 t], Sin[2 t], Cos[t]}, {t, 0, 2 Pi}, PlotStyle -> Directive[Opacity[0.7], CapForm[None], JoinForm["Miter"], Red], PlotRange -> All, ColorFunction -> Hue, Boxed -> False, MaxRecursion -> 0, PlotPoints -> 100, Axes -> None, Method -> {"TubePoints" -> 30}] /. Line[pts_, rest___] :> Tube[pts, 0.2, rest] Bob Hanlon ---- NeuroPulse <cosmicvoyager(a)gmail.com> wrote: ============= Greetings, New to Mathematica. Can't seem to find a way to plot a line as a tube like this: http://facstaff.unca.edu/mcmcclur/java/LiveMathematica/trefoil.html Seems such an obvious function to have built in. Is there one? If not, can someone point me to one I can use in Mathematica? Thanks
From: Jaebum Jung on 24 Mar 2010 05:34 On 3/23/10 5:52 AM, NeuroPulse wrote: > Greetings, > > New to Mathematica. Can't seem to find a way to plot a line as a tube > like this: > > http://facstaff.unca.edu/mcmcclur/java/LiveMathematica/trefoil.html > > Seems such an obvious function to have built in. Is there one? > > If not, can someone point me to one I can use in Mathematica? > > Thanks > > Check graphics primitive Tube: http://reference.wolfram.com/mathematica/ref/Tube.html Here's example, ParametricPlot3D[{Sin[3t],Sin[t]+2Sin[2t],Cos[t]-2Cos[2t]},{t,0,2 Pi},PlotStyle->Directive[Opacity[0.7],CapForm[None],JoinForm["Miter"],Red],PlotRange->All,ColorFunction->Hue,Boxed->False,MaxRecursion->0,PlotPoints->100,Axes->None,Method->{"TubePoints"->30}]/.Line[pts_,rest___]:>Tube[pts,0.2,rest] - Jaebum
From: M.Roellig on 24 Mar 2010 05:34 Hi, actually, if you search for Tube in the Mathematica-Help you will find all you need. Concerning your example: ParametricPlot3D[trefoil, {t, 0, 2*Pi}, Axes -> None, Boxed -> False, PlotRange -> All, ViewPoint -> {10, 0, 0}, PlotPoints -> {64, 16}, PlotLabel -> "The Trefoil Knot"] /. Line[pts_, rest___] :> Tube[pts, 0.2, rest] Cheers, Markus On Mar 23, 11:52 am, NeuroPulse <cosmicvoya...(a)gmail.com> wrote: > Greetings, > > New to Mathematica. Can't seem to find a way to plot a line as a tube > like this: > > http://facstaff.unca.edu/mcmcclur/java/LiveMathematica/trefoil.html > > Seems such an obvious function to have built in. Is there one? > > If not, can someone point me to one I can use in Mathematica? > > Thanks
From: dh on 24 Mar 2010 05:35 Hi, there is e.g.: Tube. here is an example: myLine[d_] := Tube[ d, 0.2]; Graphics3D(a)myLine@Table[{Sin[x], Cos[x], 0.1 x}, {x, 0, 4 Pi, Pi/8}] Daniel On 23.03.2010 11:52, NeuroPulse wrote: > Greetings, > > New to Mathematica. Can't seem to find a way to plot a line as a tube > like this: > > http://facstaff.unca.edu/mcmcclur/java/LiveMathematica/trefoil.html > > Seems such an obvious function to have built in. Is there one? > > If not, can someone point me to one I can use in Mathematica? > > Thanks > -- Daniel Huber Metrohm Ltd. Oberdorfstr. 68 CH-9100 Herisau Tel. +41 71 353 8585, Fax +41 71 353 8907 E-Mail:<mailto:dh(a)metrohm.com> Internet:<http://www.metrohm.com>
From: Sjoerd C. de Vries on 24 Mar 2010 06:03 Well you probably have not been looking in the documentation for long as typing the word 'tube' already provides you with the answer. Something like Graphics3D[ Tube[Table[{Sin[3 t], Sin[t] + 2 Sin[2 t], Cos[t] - 2 Cos[2 t]}, {t, 0, 2 \[Pi], \[Pi]/40}], 0.1]] should work for you (at least, if you have version 7). Otherwise you have to resort to ParametricPlot3D and have a parametric description of the surface of your object available. Cheers -- Sjoerd On Mar 23, 12:52 pm, NeuroPulse <cosmicvoya...(a)gmail.com> wrote: > Greetings, > > New to Mathematica. Can't seem to find a way to plot a line as a tube > like this: > > http://facstaff.unca.edu/mcmcclur/java/LiveMathematica/trefoil.html > > Seems such an obvious function to have built in. Is there one? > > If not, can someone point me to one I can use in Mathematica? > > Thanks
First
|
Prev
|
Pages: 1 2 Prev: CalcLink tutorial screencasts on YouTube Next: Probability Histogram Problems |