restart:
with(Maplets[Tools]): with(Maplets[Elements]): with(plots):
StartEngine();
PlotTan:=Maplet(onstartup = RunWindow(MAIN),
Window[MAIN](title="Plot Tangent Demo",
[ ["Type in a function of x, and an interval a..b for x."],
["Function:", TextField[func](width=25, background=turquoise)],
["Interval:", TextField[interv](width=25, background=turquoise)],
[ Button("Plot It", onclick=A1, background=tan),
Button("Good Bye", Shutdown(), background=pink)]
]
),
Window[PlotIt](title="The Plot",
[ [Plotter[myplot](width=300, height=300)],
[ "Add the tangent line at the point x= ",
TextField[point](width=5, background=turquoise)],
[ Button("Plot It", Evaluate(function = "plottan"), background=tan),
Button("Close", CloseWindow(PlotIt), background=pink)]
]
),
Action[A1](RunWindow(PlotIt), Evaluate(function = "plotfunc"))
):
plotfunc:=proc()
global userfunc, userinterv, p1;
userfunc:=Get(func::anything):
userinterv:=Get(interv::range):
p1:=plot(userfunc, x=userinterv, thickness=3, color=green);
Set(myplot=p1)
end proc:
plottan:=proc()
global userfunc, userinterv, userpoint, p1, p2, duserfunc, tanfunc;
userpoint:=Get(point::realcons):
duserfunc:=diff(userfunc,x);
tanfunc:=subs(x=userpoint,userfunc)+subs(x=userpoint,duserfunc)*(x-userpoint);
p2:=plot(tanfunc, x=userinterv, thickness=5, color=blue);
Set(myplot=display(p1,p2))
end proc:
Maplets[Display]( PlotTan );