MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Dashed space curve

  • To: mathgroup at
  • Subject: [mg47196] RE: [mg47158] Dashed space curve
  • From: "Wolf, Hartmut" <Hartmut.Wolf at>
  • Date: Tue, 30 Mar 2004 04:01:22 -0500 (EST)
  • Sender: owner-wri-mathgroup at

>-----Original Message-----
>From: mika_lists at [mailto:mika_lists at]
To: mathgroup at
>Sent: Sunday, March 28, 2004 7:08 AM
>To: mathgroup at
>Subject: [mg47196] [mg47158] Dashed space curve
>I would like to draw a dashed space curve (using ParametricPlot3D).
>How can I achieve that?

Unless you happen to parametrize your curve by length, Dashing or
AbsoluteDashing are useless. See e.g.

In[4]:= l = .05;
ParametricPlot3D[{E^-(l t) Sin[t], E^-(l t) Cos[t], t, 
      AbsoluteDashing[{5}]}, {t, 0, 50}, BoxRatios -> {1, 1, 1}, 
    PlotRange -> All, PlotPoints -> 500]

The graphics directive is accepted, but the dashing goes along with the
parameter, not in visible (3D) space. In fact, Help describes Dashing as a
two-dimensional graphics directive.

Here is a way to a nice dashing in 3D: construct your line segments by

In[6]:= l = .05;
In[7]:= f[t_] = {E^-(l t) Sin[t], E^-(l t) Cos[t], t/25};

...the function describing our curve; we integrate for the curve length:

In[8]:= s[t_] = 
   Integrate[Sqrt[D[f[t], t].D[f[t], t]] /. t -> tt, {tt, 0, t}]

In[9]:= s50 = s[50.]
Out[9]= 18.5563

In[10]:= Plot[s[t], {t, 0, 100}]

...the function is well behaved and invertible.

We construct the t-points with equal spacing (and dashing):

tpts = (t /. FindRoot[s[t] == #, {t, 0}] &) /@ 
      Flatten[Outer[Plus, Range[0., s50, s50/500], {0, s50/500*1/3}]];

Show[Graphics3D[Line /@ Map[f, Partition[tpts, 2], {2}]], 
  BoxRatios -> {1, 1, 1}]

Hartmut Wolf

  • Prev by Date: Re: Tick Labels Example
  • Next by Date: AW: Re: Music to Mathematica
  • Previous by thread: RE: Dashed space curve
  • Next by thread: Syncing audio and video