Osculating Circle

Author

Eric W. Weisstein
December 12, 2004

This notebook downloaded from http://mathworld.wolfram.com/notebooks/PlaneGeometry/OsculatingCircle.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/OsculatingCircle.html.

©2005 Wolfram Research, Inc. except for portions noted otherwise

Code

OsculatingCirclePoints::usage="OsculatingCirclePoints[{f,g},{t,t0,a,b},{{t1,t2,t3},{u1,u2,u3}}] plots the curve {f,g}, the thre point circles given by {t1,t2,t3}, etc., and the osculating circle to the curve at t=t0."

OsculatingCirclePoints[{f_,g_},{t_,t0_,a_,b_},tlist_List,cols_Integer:0,opts___?OptionQ]:=Module[{i},Show[GraphicsArray[Append[Table[Show[{ParametricPlot[{f,g},{t,a,b},AspectRatio->Automatic,Ticks->None,DisplayFunction->Identity],ThreePointCircleShow[{f,g}/.t->tlist[[i,1]],{f,g}/.t->tlist[[i,2]],{f,g}/.t->tlist[[i,3]],DisplayFunction->Identity]}],{i,Length[tlist]}],Show[{ParametricPlot[{f,g},{t,a,b},AspectRatio->Automatic,Ticks->None,DisplayFunction->Identity],Graphics[{OsculatingCircle[{f,g},t],PointSize[.04],Point[{f,g}]}/.t->t0]},DisplayFunction->Identity,AspectRatio->Automatic]]],opts,DisplayFunction->$DisplayFunction]]

Plot

V5

FullSimplify[OsculatingCircle[{2 Cos[t]+Cos[2t],2Sin[t]-Sin[2t]},t],0<t<2π]

Show[Graphics[{
Table[Circle[{6 Cos[t]-3 Cos[2 t],6 (1+Cos[t]) Sin[t]},8 Abs[Sin[((3 t)/2)]]],{t,0,2π,.05}],
{Red,Thickness[.01],ParametricPlot[{2 Cos[t]+Cos[2t],2Sin[t]-Sin[2t]},{t,0,2π},DisplayFunction->Identity][[1]]}
}],AspectRatio->Automatic,PlotRange->All]

c={};
movie=With[{dt=2π/80},
Table[Show[Graphics[{
Circle[{6 Cos[t0]-3 Cos[2 t0],6 (1+Cos[t0]) Sin[t0]},8 Abs[Sin[((3 t0)/2)]]],
{Red,PointSize[.02],Point[{2 Cos[t]+Cos[2t],2Sin[t]-Sin[2t]}/.t->t0],Thickness[.01],If[t0>dt,
AppendTo[c,ParametricPlot[{2 Cos[t]+Cos[2t],2Sin[t]-Sin[2t]},{t,t0-dt,t0},DisplayFunction->Identity][[1]]],
{}
]}
}],AspectRatio->Automatic,PlotRange->{{-1,1},{-1,1}}7
],{t0,dt,2π,dt}]
];

V6

FullSimplify[OsculatingCircle[{2 Cos[t]+Cos[2t],2Sin[t]-Sin[2t]},t],0<t<2π]

Graphics[{
Table[Circle[{6 Cos[t]-3 Cos[2 t],6 (1+Cos[t]) Sin[t]},8 Abs[Sin[((3 t)/2)]]],{t,0,2π,.05}],
ParametricPlot[{2 Cos[t]+Cos[2t],2Sin[t]-Sin[2t]},{t,0,2π},PlotStyle->{Red,Thickness[.01]}][[1]]
}]

c={};
movie=With[{dt=2π/80},
Table[Graphics[{
Circle[{6 Cos[t0]-3 Cos[2 t0],6 (1+Cos[t0]) Sin[t0]},8 Abs[Sin[((3 t0)/2)]]],
{Red,PointSize[.02],Point[{2 Cos[t]+Cos[2t],2Sin[t]-Sin[2t]}/.t->t0],
AppendTo[c,ParametricPlot[{2 Cos[t]+Cos[2t],2Sin[t]-Sin[2t]},{t,t0-dt,t0},PlotStyle->{Thickness[.01],Red}][[1]]]
}
},AspectRatio->Automatic,PlotRange->7],{t0,dt,2π,dt}
]];

movie[[2]]

Frames

V5

Show[GraphicsArray[Partition[Show[#,DisplayFunction->Identity]&/@Reverse[Take[NestList[Most,movie,80],{1,80,10}]],4]]]

V6

GraphicsGrid[Partition[Show/@Reverse[NestList[Most,movie,80][[1;;80;;10]]],4]]

ByteCount[%27]/10^6.MB

Animation

<<Utilities`GIF`;

Export[gifs<>"OsculatingCircle.gif",movie]//Timing

Three Points

OsculatingCirclePoints[{t,t^2},{t,0,-1,1},{{-.6,-.4,.3},{-.5,-.4,.3}}]