MathGroup Archive 2011

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

Search the Archive

envelope of curves

  • To: mathgroup at smc.vnet.net
  • Subject: [mg118609] envelope of curves
  • From: Dan <dflatin at rcn.com>
  • Date: Wed, 4 May 2011 06:34:56 -0400 (EDT)

I would like to find the envelope of a set of curves. This evelope may
be formed by moving the center of one curve along the path of the
other curve. It doesn't matter which curve is held fixed and which is
translated as can be seen in the two plots. I am pretty sure there is
a fairly straightforward algorithm for this, but it is escaping me at
the moment. One of the curves, drawn here in grey, is always an
ellipse with the major and minor axes aligned with x and y. The other
curve, drawn in red, may be like an ellipse but it may be some other
shape. In the actual problem it is a fairly involved calculation to
determine it, but it is always smooth and convex. If there is a closed
form solution for the elliptical case, that would be useful. On the
other hand, a numerical solution that can be expressed as an
interpolated curve would probably be the most general solution for me.

With[{a=5,b=1,c=0.25,d=1.5,theta=-Pi/6,n=50},
  Module[{rot,c1,c2},
    rot={{Cos[theta],-Sin[theta]},{Sin[theta],Cos[theta]}};
    c1[psi_]:={a Sin[psi],b Cos[psi]};
    c2[psi_]:=rot.{c Sin[psi],d Cos[psi]};
    Column[{
      Show[{
        ParametricPlot[c1[psi],{psi,-Pi,Pi},Axes->False,
          PlotStyle->Gray,PlotRange->All],
        ParametricPlot[c2[psi],{psi,-Pi,Pi},Axes->False,
          PlotStyle->Red],
        Table[
          ParametricPlot[c1[phi]+c2[psi],{psi,-Pi,Pi},
          Axes->False,
          PlotStyle->Directive[Red,Opacity[0.2]]
          ],{phi,-Pi,Pi,2Pi/n}
        ]
      },ImageSize->400],
      Show[{
        ParametricPlot[c1[psi],{psi,-Pi,Pi},Axes->False,
          PlotStyle->Gray,PlotRange->All],
        ParametricPlot[c2[psi],{psi,-Pi,Pi},Axes->False,
          PlotStyle->Red],
        Table[
          ParametricPlot[c1[psi]+c2[phi],{psi,-Pi,Pi},
          Axes->False,
          PlotStyle->Directive[Gray,Opacity[0.2]]
          ],{phi,-Pi,Pi,2Pi/n}
        ]
      },ImageSize->400]
    }]
  ]
]

Thanks in advance.
Dan


  • Prev by Date: Re: Solve / Reduce isolating results.
  • Next by Date: Re: Replacements and NIntegrate
  • Previous by thread: Re: Solve / Reduce isolating results.
  • Next by thread: Re: envelope of curves