# Plotting in Maple: tubeplot
#
# Maple also will do parametric plots in 3 dimensions. For the purposes of this discussion, we will focus on the Maple function "tubeplot", which puts a tube around a curve in 3-space.
#
# Since tubeplot is part of the external package called 'plots', we can invoke it with a command such as
> plots[tubeplot]([cos(t),sin(t),0,t=0..2*Pi], radius=0.1);
# (this draws a tube of radius 0.1 about the unit circle lying in the x-y plane).
# Alternatively, we can load the entire Plots package, which defines a number of additional routines. After doing that, we need never identify that tubeplot is part of 'plots'.
> with(plots);
[animate, animate3d, changecoords, complexplot, complexplot3d,
conformal, contourplot, contourplot3d, coordplot, coordplot3d,
cylinderplot, densityplot, display, display3d, fieldplot,
fieldplot3d, gradplot, gradplot3d, implicitplot, implicitplot3d,
inequal, listcontplot, listcontplot3d, listdensityplot, listplot,
listplot3d, loglogplot, logplot, matrixplot, odeplot, pareto,
pointplot, pointplot3d, polarplot, polygonplot, polygonplot3d,
polyhedraplot, replot, rootlocus, semilogplot, setoptions,
setoptions3d, spacecurve, sparsematrixplot, sphereplot, surfdata,
textplot, textplot3d, tubeplot]
# Now let's add a few bumps to the z-coordinate as we travel around the circle.
> tubeplot([cos(t), sin(t), cos(4*t)], t=0..2*Pi, radius=0.1, scaling=constrained, style=patch, numpoints=100, axes=framed);
#
# We can also have the radius vary with the parameter, and/or have more than one "tube" at a time. Note that the radius of the "ring of beads" is sometimes negative... that's not a problem.
> tubeplot({[cos(t), sin(t), 0, t=0..2*Pi,radius=.3*cos(4*t)],[t,-t,arctan(20*t),t=-1.5..1.5,radius=0.1]}, style=patch, axes=none);