Doxygen Source Code Documentation
plot_ps.c File Reference
#include <stdio.h>#include <time.h>#include <math.h>#include <string.h>Go to the source code of this file.
| Defines | |
| #define | M_PI 3.14159265358979323846 | 
| Functions | |
| void | ps_move (int, int) | 
| void | ps_line (int, int, int, int) | 
| void | ps_cont (int, int) | 
| void | ps_point (int, int) | 
| void | ps_label (char *) | 
| void | ps_arc (int, int, int, int, int, int) | 
| void | ps_circle (int, int, int) | 
| void | ps_erase (void) | 
| void | ps_linemod (char *) | 
| void | ps_space (int, int, int, int) | 
| int | ps_openpl (char *) | 
| void | ps_closepl (void) | 
| void | ps_setrgb (float, float, float) | 
| void | ps_setwidth (float) | 
| void | ps_rect (int, int, int, int) | 
| void | zzpsco_ (float *, float *, float *) | 
| void | zzpsop_ (char *cfl, int ncfl) | 
| void | zzpsli_ (int *, int *, int *, int *) | 
| void | zzpsfr_ (void) | 
| void | zzpscl_ (void) | 
| void | ps_maybe_stroke (void) | 
| void | ps_stroke (void) | 
| int | ps_setfont (void) | 
| void | ps_prolog (void) | 
| void | ps_epilog (void) | 
| void | ps_clear (void) | 
| Variables | |
| int | font | 
| int | error | 
| int | npages = 0 | 
| int | cx | 
| int | cy | 
| int | ttcur = 0 | 
| int | atcur = 0 | 
| int | inpath = 0 | 
| int | plot = 0 | 
| double | scal = 1.0 | 
| int | prolog_not_output = 1 | 
| FILE * | psfile = NULL | 
| int | psfile_ispipe = 0 | 
| char * | prolog_text [] | 
Define Documentation
| 
 | 
| 
 Definition at line 137 of file plot_ps.c. Referenced by ps_arc(). | 
Function Documentation
| 
 | ||||||||||||||||||||||||||||
| 
 Definition at line 140 of file plot_ps.c. References atcur, inpath, M_PI, plot, ps_stroke(), psfile, x2, and y1. 
 00141 {  double dx , dy ;
00142 
00143    if (inpath) ps_stroke() ;
00144    dx=x1-x;
00145    dy=y1-y;
00146    fprintf( psfile , "%d %d %f ", x, y, sqrt(dx*dx+dy*dy) );
00147    fprintf( psfile , "%f ", (double)(atan2(dy,dx)/M_PI)*180.0 );
00148    dx=x2-x;
00149    dy=y2-y;
00150    fprintf( psfile , "%f ", (double)(atan2(dy,dx)/M_PI)*180.0 );
00151    plot=1;
00152    atcur=inpath=0;
00153 }
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 155 of file plot_ps.c. References plot, psfile, and r. 
 | 
| 
 | 
| 
 Definition at line 298 of file plot_ps.c. References atcur, inpath, npages, plot, ps_stroke(), psfile, and ttcur. Referenced by ps_epilog(), and ps_erase(). 
 | 
| 
 | 
| 
 Definition at line 251 of file plot_ps.c. References pclose, ps_epilog(), psfile, and psfile_ispipe. 
 00252 { ps_epilog();
00253 
00254   if( psfile == stdout ){                   /* 29 Nov 2002: don't close stdout */
00255     fflush(psfile) ;                        /*              just flush it */
00256   } else {
00257     if( ! psfile_ispipe ) fclose(psfile) ;
00258     else                  pclose(psfile) ;  /* RWCox */
00259   }
00260 
00261   psfile = NULL ; psfile_ispipe = 0 ;
00262 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 85 of file plot_ps.c. References atcur, cx, cy, inpath, plot, ps_maybe_stroke(), ps_move(), psfile, and ttcur. 
 | 
| 
 | 
| 
 Definition at line 310 of file plot_ps.c. References npages, ps_clear(), and psfile. Referenced by ps_closepl(). 
 | 
| 
 | 
| 
 Definition at line 160 of file plot_ps.c. References ps_clear(). 
 00161 { ps_clear() ; }
 | 
| 
 | 
| 
 Definition at line 118 of file plot_ps.c. References atcur, c, cx, cy, font, inpath, plot, ps_setfont(), ps_stroke(), psfile, putchar, and ttcur. 
 00119 { int is ;
00120   char c ;
00121 
00122   if (inpath) ps_stroke() ;
00123   if (!ttcur) fprintf( psfile , "%d %d M\n",cx,cy);
00124   if (!font) font=ps_setfont();
00125   fprintf( psfile , "(");
00126   for( is=0,c=s[is] ; (c!='\0')&&(c!='\n') ; ++is,c=s[is] )
00127   {
00128     if (c=='(' || c==')' || c=='\\')putchar('\\');
00129     putchar(c);
00130   }
00131   fprintf( psfile , ") T\n");
00132   ttcur=plot=1;
00133   atcur=inpath=0;
00134 }
 | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 77 of file plot_ps.c. References ps_cont(), and ps_move(). 
 | 
| 
 | 
| 
 Definition at line 166 of file plot_ps.c. References ps_stroke(), psfile, and scal. 
 00167 { double pt ;
00168   pt = 1.0 / scal ;
00169 
00170   if (inpath) ps_stroke() ;  /* draw anything specified before setdash */
00171 
00172   if (strncmp(s,"solid",5) == 0) {
00173      fprintf( psfile , "[] 0 setdash\n") ;
00174   } else if( strncmp(s,"dotted",6) == 0 ) {
00175      fprintf( psfile , "[ %f %f ] 0 setdash\n" , 2.0*pt , 3.0*pt ) ;
00176   } else if( strncmp(s,"dotdashed",9) == 0 ) {
00177      fprintf( psfile , "[ %f %f %f %f ] 0 setdash\n" ,
00178             2.0*pt , 3.0*pt , 6.0*pt , 3.0*pt ) ;
00179   } else if( strncmp(s,"shortdashed",11) == 0 ) {
00180      fprintf( psfile , "[ %f %f ] 0 setdash\n" , 6.0*pt , 3.0*pt ) ;
00181   } else if( strncmp(s,"longdashed",10) == 0 ) {
00182      fprintf( psfile , "[ %f %f ] 0 setdash\n" , 9.0*pt , 4.5*pt ) ;
00183   } else {
00184      fprintf(stderr,
00185              "plotps: linestyle '%s' not implemented.\n",s);
00186      fprintf( psfile , "[] 0 setdash\n") ;
00187   }
00188 }
 | 
| 
 | 
| 
 Definition at line 63 of file plot_ps.c. References inpath, and ps_stroke(). Referenced by ps_cont(). 
 | 
| 
 | ||||||||||||
| 
 Definition at line 69 of file plot_ps.c. References atcur, cx, cy, and ttcur. 
 | 
| 
 | 
| 
 Definition at line 222 of file plot_ps.c. References popen, ps_prolog(), psfile, and psfile_ispipe. 
 00223 {
00224   if( strcmp(fname,"-") == 0 ){           /* 29 Nov 2002: to stdout */
00225     psfile = stdout ;
00226     psfile_ispipe = 0 ;
00227   } else if( fname[0] != '|' ){           /* normal file */
00228     psfile = fopen( fname , "w" ) ;
00229     psfile_ispipe = 0 ;
00230   } else {                                /* open a pipe */
00231     psfile = popen( fname+1 , "w" ) ;
00232     psfile_ispipe = 1 ;
00233   }
00234   if( psfile == NULL ) return 0 ;
00235   ps_prolog();
00236   return 1 ;
00237 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 110 of file plot_ps.c. References atcur, cx, cy, inpath, plot, ps_move(), ps_stroke(), psfile, and ttcur. 
 | 
| 
 | 
| 
 Definition at line 286 of file plot_ps.c. References font, p, prolog_not_output, prolog_text, psfile, and tt. Referenced by ps_openpl(), and ps_space(). 
 | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 96 of file plot_ps.c. References ps_stroke(), psfile, x2, and y1. 
 00097 {
00098    if( inpath ) ps_stroke() ;
00099    fprintf( psfile , "NP ");
00100    fprintf( psfile , "%d %d M ",x1,y1);
00101    fprintf( psfile , "%d %d N ",x2,y1);
00102    fprintf( psfile , "%d %d N ",x2,y2);
00103    fprintf( psfile , "%d %d N ",x1,y2);
00104 #if 0
00105    fprintf( psfile , "%d %d N ",x1,y1);
00106 #endif
00107    fprintf( psfile , "F S\n") ;
00108 }
 | 
| 
 | 
| 
 Definition at line 216 of file plot_ps.c. Referenced by ps_label(). 
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 208 of file plot_ps.c. References ps_stroke(), and psfile. 
 | 
| 
 | 
| 
 Definition at line 203 of file plot_ps.c. References ps_stroke(), and psfile. 
 | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 190 of file plot_ps.c. References atcur, font, inpath, ps_linemod(), ps_prolog(), ps_stroke(), psfile, and scal. 
 00191 { if( prolog_not_output ) ps_prolog() ;
00192   if (inpath) ps_stroke() ;
00193   fprintf( psfile , "initgraphics\n");
00194   fprintf( psfile , "1 setlinewidth\n");
00195   fprintf( psfile , "66 72 translate\n");
00196   scal=480.0/(ix2-ix1);
00197   fprintf( psfile , "%f %f scale\n",scal,480.0/(iy2-iy1));
00198   if (ix1 || iy1) fprintf( psfile , "%d %d translate\n",-ix1, -iy1);
00199   ps_linemod( "solid" ) ;
00200   atcur=inpath=font=0;
00201 }
 | 
| 
 | 
| 
 Definition at line 66 of file plot_ps.c. References atcur, inpath, and psfile. Referenced by ps_arc(), ps_clear(), ps_label(), ps_linemod(), ps_maybe_stroke(), ps_point(), ps_rect(), ps_setrgb(), ps_setwidth(), and ps_space(). 
 | 
| 
 | 
| 
 Definition at line 319 of file plot_ps.c. References ps_closepl(). 
 00320 { ps_closepl() ; }
 | 
| 
 | ||||||||||||||||
| 
 Definition at line 213 of file plot_ps.c. References ps_setrgb(). 
 00214 { ps_setrgb( *rrr,*ggg,*bbb ) ; }
 | 
| 
 | 
| 
 Definition at line 163 of file plot_ps.c. References ps_erase(). 
 00164 { ps_erase() ; }
 | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 82 of file plot_ps.c. References ps_line(). 
 00083 { ps_line( *ix1,*iy1 , *ix2,*iy2 ) ; }
 | 
| 
 | ||||||||||||
| 
 Definition at line 239 of file plot_ps.c. References i, ps_openpl(), ps_space(), and psfile. 
 | 
Variable Documentation
| 
 | 
| 
 Definition at line 53 of file plot_ps.c. Referenced by ps_arc(), ps_clear(), ps_cont(), ps_label(), ps_move(), ps_point(), ps_space(), and ps_stroke(). | 
| 
 | 
| 
 Definition at line 51 of file plot_ps.c. Referenced by ps_cont(), ps_label(), ps_move(), and ps_point(). | 
| 
 | 
| 
 Definition at line 51 of file plot_ps.c. Referenced by ps_cont(), ps_label(), ps_move(), and ps_point(). | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 48 of file plot_ps.c. Referenced by ps_label(), ps_prolog(), and ps_space(). | 
| 
 | 
| 
 Definition at line 54 of file plot_ps.c. Referenced by ps_arc(), ps_clear(), ps_cont(), ps_label(), ps_maybe_stroke(), ps_point(), ps_space(), and ps_stroke(). | 
| 
 | 
| 
 Definition at line 50 of file plot_ps.c. Referenced by ps_clear(), and ps_epilog(). | 
| 
 | 
| 
 Definition at line 55 of file plot_ps.c. Referenced by ps_arc(), ps_circle(), ps_clear(), ps_cont(), ps_label(), and ps_point(). | 
| 
 | 
| 
 Definition at line 57 of file plot_ps.c. Referenced by ps_prolog(). | 
| 
 | 
| Initial value:  {
    "%%BoundingBox: 36 36 540 690",
    "%%Title: plotps output",
    "%%Creator: plotps 1.0 (RWCox)",
    "%%Pages: (atend)",
    "%%DocumentFonts: Times-Roman",
    "%%EndComments",
    "/S{stroke}bind def",
    "/F{fill}bind def" ,
    "/NP{newpath}bind def",
    "/M{moveto}bind def",
    "/N{lineto}bind def",
    "/A{NP arc S}bind def",
    "/C{0 360 A}bind def",
    "/P{1 0 360 A}bind def",
    "/T{show}bind def",
    "/CL{showpage}bind def",
    "/SF{/Times-Roman findfont exch scalefont setfont}bind def",
    "%%EndProlog",
    NULL
}Definition at line 264 of file plot_ps.c. Referenced by ps_prolog(). | 
| 
 | 
| 
 Definition at line 58 of file plot_ps.c. Referenced by ps_arc(), ps_circle(), ps_clear(), ps_closepl(), ps_cont(), ps_epilog(), ps_label(), ps_linemod(), ps_openpl(), ps_point(), ps_prolog(), ps_rect(), ps_setfont(), ps_setrgb(), ps_setwidth(), ps_space(), ps_stroke(), and zzpsop_(). | 
| 
 | 
| 
 Definition at line 59 of file plot_ps.c. Referenced by ps_closepl(), and ps_openpl(). | 
| 
 | 
| 
 Definition at line 56 of file plot_ps.c. Referenced by ps_linemod(), ps_setfont(), and ps_space(). | 
| 
 | 
| 
 Definition at line 52 of file plot_ps.c. Referenced by ps_clear(), ps_cont(), ps_label(), ps_move(), and ps_point(). | 
 
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
 
 
 
 
       
	   
	   
	   
	  