RE: parametric plots
- To: mathgroup at smc.vnet.net
- Subject: [mg30008] RE: [mg29969] parametric plots
- From: "David Park" <djmp at earthlink.net>
- Date: Sat, 21 Jul 2001 00:49:15 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Richard, Here is a short method to animate a ParametricPlot for the example of an ellipse. Needs["Graphics`Animation`"] Needs["Graphics`Colors`"] curve[t_] := {4Cos[t], 2Sin[t]} frame[t_] := ParametricPlot[curve[s] // Evaluate, {s, -0.00001, t}, Frame -> True, PlotRange -> {{-4.5, 4.5}, {-2.2, 2.2}}] Animate[frame[t], {t, 0, 2 Pi}] SelectionMove[EvaluationNotebook[], All, GeneratedCell] FrontEndTokenExecute["OpenCloseGroup"] FrontEndTokenExecute["SelectionAnimate"] Some observations: 1) We have to explicitly specify the PlotRange so that the same one will be used for each frame. 2) I started drawing the curve at a slightly negative value so that t = 0 will not generate an error message. 3) The extra statements after Animate are just a convenient method to select, close up, and activate the animation cells. Here is a way to make a fancier animation. It uses several routines I mentioned a week or so ago on MathGroup, which I repeat here. Attributes[DrawGraphics] = {HoldAll}; DrawGraphics[plot_] := Block[{$DisplayFunction = Identity}, First[Graphics[plot]]] Draw2D[primitives_List, opts___?OptionQ] := Show[Graphics[primitives], opts] Now in each frame I: 1) Draw the full curve in Pink on a Linen background. 2) Draw the partial curve in Black. 3) Put a Black point at the start and a Red point at the end of the partial curve. 4) Add a Text statement giving the value of the parameter. frame[t_] := Draw2D[{Pink, DrawGraphics[ParametricPlot[Evaluate[curve[s]], {s, 0, 2 Pi}]], Black, AbsolutePointSize[4], Point[curve[0]], DrawGraphics[ParametricPlot[Evaluate[curve[s]], {s, -0.0001, t}]], Red, Point[curve[t]], Black, Text["t = " NumberForm[N[t], {3, 2}], Scaled[{0.1, 0.1}], {-1, 0}]}, Frame -> True, PlotRange -> {{-4.5, 4.5}, {-2.8, 2.2}}, Background -> Linen, PlotLabel -> "ParametricPlot Animation", ImageSize -> 500] Animate[frame[t], {t, 0, 2Pi}, Frames -> 40] SelectionMove[EvaluationNotebook[], All, GeneratedCell] FrontEndTokenExecute["OpenCloseGroup"] FrontEndTokenExecute["SelectionAnimate" David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: richard speers [mailto:rspeers at skidmore.edu] To: mathgroup at smc.vnet.net > > This one is easy, I know, but I can't do it. For classroom use I want > to be able to watch a parametric curve being drawn. > > Thanks. > > R. Speers > >