DIRECTORY BasicTime USING [Now], Commander USING [CommandProc, Register], IO USING [int, PutFR], Plot USING [AddVector, CreateSpec, CreateViewer, RealSequence, RopeSequence, SavePlot, Vector], RealFns USING [Sin], Rope USING[ROPE], ViewerClasses USING [Viewer]; PlotDemoImpl: CEDAR PROGRAM IMPORTS BasicTime, Commander, IO, Plot, RealFns = BEGIN PlotDemo: Commander.CommandProc = { -- plot twelve sinusoidal curves. p : REAL = 3.14159; PhaseShift: REAL = p/12.0; timeIncrement: REAL = 4.0/100.0; -- 100 time increments in 4p t, angle: REAL _ 0.0; viewer: ViewerClasses.Viewer; names: REF Plot.RopeSequence _ NEW[Plot.RopeSequence[12]]; FOR i: CARDINAL IN [0..12) DO names[i] _ IO.PutFR["Wave # %g. ", IO.int[i+1]]; ENDLOOP; viewer _ Plot.CreateViewer[ Plot.CreateSpec[file: "Waves.plot", title: "Waves", time: BasicTime.Now[], bounds: [0, -1.0, 4.0, 1.0], nCurvesMax: 12, legendEntries: names]]; WHILE t <= 4.0 DO vector: Plot.Vector _ NEW[Plot.RealSequence[13]]; -- a "vertical" cross-section of the plot. vector[0] _ t; angle _ t*p; FOR i: CARDINAL IN [1..12] DO vector[i] _ RealFns.Sin[angle]; angle _ angle - PhaseShift; ENDLOOP; Plot.AddVector[viewer, vector]; t _ t + timeIncrement; ENDLOOP; msg _ Plot.SavePlot[viewer, "Waves.plot"]; }; -- PlotDemo Commander.Register[ "PlotDemo", PlotDemo, "Demonstration of the curve plotting package."]; END. LOG. Chen, July 29, 1985 6:19:35 pm PDT, created. ΖPlotDemoImpl.mesa Sweetsun Chen, August 2, 1985 2:20:16 pm PDT -- initialize names of curves. -- create the plot viewer -- generate the curves as funtions of t. -- save into a plot file. Κ˜™Icode™,—J™šΟk ˜ Jšœ œ˜Jšœ œ˜(Jšœœ˜JšœœU˜_Jšœœ˜Jšœœœ˜Jšœœ ˜J˜—šœœ˜Jšœœ˜2—Jš˜J™šœ$Οc!˜EJšΟgΠgkœ Ÿ˜Jšœ œŸœ˜JšœœžΠgi˜=Jšœ œ˜Jšœ˜J™Jšœ™Jšœœœ˜:šœœœ ˜Jšœ œœ ˜0Jšœ˜—J™Jšœ™šœ˜šœK˜KJšœD˜D——J˜Jšœ(™(šœ˜Jšœœž+˜]Jšœ˜Jšœ Ÿœ˜ šœœœ ˜Jšœ˜Jšœ˜Jšœ˜—Jšœ˜Jšœ˜Jšœ˜—J˜J™Jšœ*˜*Jšœž ˜J˜—šœ˜J˜F—J˜Jšœ˜J˜šœ˜J˜,——…—„^