MathGroup Archive 1997

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

Search the Archive

Moebius strips

  • To: mathgroup at
  • Subject: [mg6543] Moebius strips
  • From: wself at (Will Self)
  • Date: Mon, 31 Mar 1997 23:01:42 -0500 (EST)
  • Sender: owner-wri-mathgroup at

Arturus asked for code for a nice Moebius strip.  With this function you
can have it all:  nice Moebius strips and ones that are not so nice.  If you
have any curve in 3-space given as {f[t],g[t],h[t]}, this function will
give you a strip whose centerline is your curve.  You can give an integer
value for the argument twist, which will control the number of times
the strip twists around.



cross[{a_,b_,c_},{d_,e_,f_}]:={b f - c e, c d - a f, a e - b d}

perp[v_, unitVec_]:= v - (v . unitVec) unitVec

normalizedPerp[v_, w_]:= perp[v, w]/norm[perp[v, w]]

moebiusStrip[{f_,g_,h_},{s_,begin_,end_}, width_,twist_,options___]:=
Module[{positionVector, velocityVector, unitTangentVector,
  accelerationVector, normalVector, binormalVector,
  twist2=twist Pi/(end-begin)},
   u*Cos[twist2 w]*normalVector[w]+
   u*Sin[twist2 w]*binormalVector[w],
   {w, begin, end}, {u, -width, width}, 
   Compiled -> False, PlotPoints->{36,2}, options]]


You may want to increase the 36 in the PlotPoints option.  The function
as written is *anything but* optimized for speed.  On the other hand, I
think it provides an excellent example of how you can often write
Mathematica code that is a close reflection of the mathematics you are


moebiusStrip[{Cos[t], Sin[t],.3Cos[t]}, {t, 0, 2 Pi}, 0.2, 2]

Will Self
Montana State University, Billings MT

  • Prev by Date: Re: Bug: V.3 for PowerMac
  • Next by Date: Coupled ODEs: not solving [REPOST]
  • Previous by thread: Re: Bug: V.3 for PowerMac
  • Next by thread: Coupled ODEs: not solving [REPOST]