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