home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 344b.lha / plplot_v2.6 / src / plbox3.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-01-27  |  4.0 KB  |  124 lines

  1. /* Draws axes and axis labels for 3-d plots */
  2.  
  3. #include "plplot.h"
  4.  
  5. extern PLINT zbackflag, zbcolor;
  6. extern PLFLT zticksp;
  7.  
  8. void plbox3(xopt,xlabel,xtick,nsubx,yopt,ylabel,ytick,nsuby,
  9.             zopt,zlabel,ztick,nsubz)
  10. char *xopt, *xlabel, *yopt, *ylabel, *zopt, *zlabel;
  11. PLINT nsubx, nsuby, nsubz;
  12. PLFLT xtick, ytick, ztick;
  13. {
  14.       PLFLT dx,dy,tx,ty,ux,uy;
  15.       PLFLT xmin,xmax,ymin,ymax,zmin,zmax,zscale;
  16.       PLFLT cxx,cxy,cyx,cyy,cyz;
  17.       PLINT ln, level, font;
  18.  
  19.       glev(&level);
  20.       if (level < 3) plexit("Please set up window before calling plbox3");
  21.  
  22.       gw3wc(&cxx,&cxy,&cyx,&cyy,&cyz);
  23.       gdom(&xmin,&xmax,&ymin,&ymax);
  24.       grange(&zscale,&zmin,&zmax);
  25.  
  26.       /* We have to wait until after the plot is drawn to draw back */
  27.       /* grid so store this stuff. */
  28.       zbackflag = stsearch(zopt,'d');
  29.       if(zbackflag) {
  30.          /* save tick spacing and color */
  31.          zticksp = ztick;
  32.          gatt(&font,&zbcolor);
  33.       }
  34.  
  35.       if (cxx >= 0.0 && cxy <= 0.0) {
  36.         ln= stsearch(xopt,'n');
  37.         tx=w3wcx(xmin,ymin,zmin);
  38.         ty=w3wcy(xmin,ymin,zmin);
  39.         ux=w3wcx(xmax,ymin,zmin);
  40.         uy=w3wcy(xmax,ymin,zmin);
  41.         plxybx(xopt,xlabel,tx,ty,ux,uy,xmin,xmax,xtick,nsubx,0);
  42.         dx = ux - tx;
  43.         dy = uy - ty;
  44.         plzbx(zopt,zlabel,1,dx,dy,ux,uy,
  45.              w3wcy(xmax,ymin,zmax),zmin,zmax,ztick,nsubz);
  46.         tx=w3wcx(xmin,ymax,zmin);
  47.         ty=w3wcy(xmin,ymax,zmin);
  48.         ux=w3wcx(xmin,ymin,zmin);
  49.         uy=w3wcy(xmin,ymin,zmin);
  50.         plxybx(yopt,ylabel,tx,ty,ux,uy,ymax,ymin,ytick,nsuby,ln);
  51.         dx = ux - tx;
  52.         dy = uy - ty;
  53.         plzbx(zopt,zlabel,0,dx,dy,tx,ty,
  54.              w3wcy(xmin,ymax,zmax),zmin,zmax,ztick,nsubz);
  55.  
  56.       }
  57.       else if (cxx <= 0.0 && cxy <= 0.0) {
  58.         ln=stsearch(yopt,'n');
  59.         tx=w3wcx(xmin,ymax,zmin);
  60.         ty=w3wcy(xmin,ymax,zmin);
  61.         ux=w3wcx(xmin,ymin,zmin);
  62.         uy=w3wcy(xmin,ymin,zmin);
  63.         plxybx(yopt,ylabel,tx,ty,ux,uy,ymax,ymin,ytick,nsuby,0);
  64.         dx = ux - tx;
  65.         dy = uy - ty;
  66.         plzbx(zopt,zlabel,1,dx,dy,ux,uy,
  67.              w3wcy(xmin,ymin,zmax),zmin,zmax,ztick,nsubz);
  68.         tx=w3wcx(xmax,ymax,zmin);
  69.         ty=w3wcy(xmax,ymax,zmin);
  70.         ux=w3wcx(xmin,ymax,zmin);
  71.         uy=w3wcy(xmin,ymax,zmin);
  72.         plxybx(xopt,xlabel,tx,ty,ux,uy,xmax,xmin,xtick,nsubx,ln);
  73.         dx = ux - tx;
  74.         dy = uy - ty;
  75.         plzbx(zopt,zlabel,0,dx,dy,tx,ty,
  76.              w3wcy(xmax,ymax,zmax),zmin,zmax,ztick,nsubz);
  77.  
  78.       }
  79.       else if (cxx <= 0.0 && cxy >= 0.0) {
  80.         ln= stsearch(xopt,'n');
  81.         tx=w3wcx(xmax,ymax,zmin);
  82.         ty=w3wcy(xmax,ymax,zmin);
  83.         ux=w3wcx(xmin,ymax,zmin);
  84.         uy=w3wcy(xmin,ymax,zmin);
  85.         plxybx(xopt,xlabel,tx,ty,ux,uy,xmax,xmin,xtick,nsubx,0);
  86.         dx = ux - tx;
  87.         dy = uy - ty;
  88.         plzbx(zopt,zlabel,1,dx,dy,ux,uy,
  89.              w3wcy(xmin,ymax,zmax),zmin,zmax,ztick,nsubz);
  90.         tx=w3wcx(xmax,ymin,zmin);
  91.         ty=w3wcy(xmax,ymin,zmin);
  92.         ux=w3wcx(xmax,ymax,zmin);
  93.         uy=w3wcy(xmax,ymax,zmin);
  94.         plxybx(yopt,ylabel,tx,ty,ux,uy,ymin,ymax,ytick,nsuby,ln);
  95.         dx = ux - tx;
  96.         dy = uy - ty;
  97.         plzbx(zopt,zlabel,0,dx,dy,tx,ty,
  98.              w3wcy(xmax,ymin,zmax),zmin,zmax,ztick,nsubz);
  99.       }
  100.       else if (cxx >= 0.0 && cxy >= 0.0) {
  101.         ln= stsearch(yopt,'n');
  102.         tx=w3wcx(xmax,ymin,zmin);
  103.         ty=w3wcy(xmax,ymin,zmin);
  104.         ux=w3wcx(xmax,ymax,zmin);
  105.         uy=w3wcy(xmax,ymax,zmin);
  106.         plxybx(yopt,ylabel,tx,ty,ux,uy,ymin,ymax,ytick,nsuby,0);
  107.         dx = ux - tx;
  108.         dy = uy - ty;
  109.         plzbx(zopt,zlabel,1,dx,dy,ux,uy,
  110.              w3wcy(xmax,ymax,zmax),zmin,zmax,ztick,nsubz);
  111.         tx=w3wcx(xmin,ymin,zmin);
  112.         ty=w3wcy(xmin,ymin,zmin);
  113.         ux=w3wcx(xmax,ymin,zmin);
  114.         uy=w3wcy(xmax,ymin,zmin);
  115.         plxybx(xopt,xlabel,tx,ty,ux,uy,xmin,xmax,xtick,nsubx,ln);
  116.         dx = ux - tx;
  117.         dy = uy - ty;
  118.         plzbx(zopt,zlabel,0,dx,dy,tx,ty,
  119.              w3wcy(xmin,ymin,zmax),zmin,zmax,ztick,nsubz);
  120.  
  121.       }
  122. }
  123.  
  124.