Back to draw-Gnuplot

'draw'-Gnuplot interface:
object tube

Once you have opened a Maxima session, load package draw:

load("draw") $

To read the documentation on object tube, write the following sentence:

describe(tube) $

We can select if we want open or closed extremes:

draw3d(
  surface_hide = true,
  capping      = [false, true],
  tube(a, a, a^2, 1, a, -2, 2) )$
tube3

Tubes can be plotted indicating a parametric curve and the radius:

draw3d(
  enhanced3d = true,
  palette    = gray,
  xu_grid    = 50,
  tube(cos(a), a, 0, 1,
       a, 0, 4*%pi) )$
tube1

Sinusoidal tube with varying diameter:

draw3d(
  enhanced3d = true,
  palette    = gray,
  xu_grid    = 50,
  tube(cos(a), a, 0, cos(a/10)^2,
       a, 0, 4*%pi) )$
tube2

A family of knots:

knot(m,n,h,p,q,t,k,i,r,s) :=
  block([a],
    gr3d(
      xu_grid    = 100,
      enhanced3d = true,
      colorbox   = false,
      tube(m * cos(p*a) + n*cos(q*a) + k*cos(r*a),
           m * sin(p*a) + n*sin(q*a) + k*sin(r*a),
           h * sin(t*a) + i*sin(s*a),
           0.1,
           a, 0, 2*%pi)))$

k1 : knot(1,1.5,0.35,1,-2,3,0,0,0,0) $
k2 : knot(1,0.45,0.35,2,-3,5,0,0,0,0) $
k3 : knot(1,0.45,0.35,3,-2,5,0,0,0,0) $
k4 : knot(1,0.45,0.35,4,-1,5,0,0,0,0) $

draw(
  terminal   = eps_color,
  dimensions = 100*[10,10],
  columns    = 2,
  k1, k2, k3, k4 )$
tube4

Color scalars for tube objects can be especified with respect to the parameter of the central curve, or with respect to the \((x, y, z)\) coordinates of the surface points:

draw3d(
  colorbox   = false,
  palette    = gray,
  xu_grid    = 50,

  /* wrt the curve parameter */
  enhanced3d = [a,a],
  tube(5+cos(a), a, 0, 1, a, 0, 4*%pi),

  /* wrt the xyz coordinates */
  enhanced3d = [4*z,x,y,z],
  tube(cos(a), a, 0, 1, a, 0, 4*%pi) )$
tube5

© 2011-2016, TecnoStats.