Plotting several spacecurves



Hola Miguel,

> I can plot one thread using parametric 3d plots, but haven't found the way to 
> plot several of them simultaneously.

The following piece of code should do this job. I don't know your
specific needs, but you can add some more gnuplot code if necessary.


/******** BEGIN MAXIMA SESSION ********/

(%i1) 
parametric_curves_3d([curve]):=
  block([ncurves: length(curve), numer:true, display2d:false,
         str: "splot", numticks: 100, inivar, dvar, namevar, valvar],
    with_stdout("pcurves3d.gnuplot",

      /* write gnuplot commands */
      for k:1 thru ncurves do(
        str: sconcat(str, " '-' title 'curva-", k, "' with lines ", k),
        if k < ncurves
          then str: sconcat(str, ",")  ),
      print(str),

      /* write 3d points for each parametric curve */
      for k:1 thru ncurves do(
        inivar: curve[k][4][2],
        dvar: (curve[k][4][3] - inivar) / numticks,
        namevar: curve[k][4][1],
        for j:1 thru numticks do(
          valvar: inivar + (j - 1) * dvar,
          print(float(subst(valvar, namevar, curve[k][1])),
                float(subst(valvar, namevar, curve[k][2])),
                float(subst(valvar, namevar, curve[k][3])))  ),
        if k < ncurves then print("e") ) ),

    /* call gnuplot to execute script file */
    system("gnuplot -persist pcurves3d.gnuplot")  )$
(%i2) 
parametric_curves_3d(
   [6*cos(x)*sin(x), x^2, x, [x, 0, 2*%pi]],
   [2*y, 7+y, y^3, [y,-1,3]],
   [5+2*cos(t),5+3*sin(t),t,[t,-3*%pi,3*%pi]])$

/******** END MAXIMA SESSION ********/

If you are a windows user, write 'wgnuplot' instead of 'gnuplot' in
command 'system'.

If you need some more help, just let me know.

Un saludo.
Mario

-- 
Mario Rodriguez Riotorto
www.biomates.net