This is plvasp.c in view mode; [Download] [Up]
/* Sets the edges of the viewport to the specified normalized subpage */ /* coordinates */ #include "plplot.h" void plvasp(aspratio) double aspratio; { int level; double chrdef, chrht, spxmin, spxmax, spymin, spymax; double vpxmin, vpxmax, vpymin, vpymax; double xsize, ysize, nxsize, nysize; double lb, rb, tb, bb; glev(&level); if (level < 1) plexit("Please call plstar before calling plvasp."); gchr(&chrdef,&chrht); lb = 8.0 * chrht; rb = 5.0 * chrht; tb = 5.0 * chrht; bb = 5.0 * chrht; plgspa(&spxmin,&spxmax,&spymin,&spymax); xsize = spxmax - spxmin; ysize = spymax - spymin; xsize -= lb+rb; /* adjust for labels */ ysize -= bb+tb; if(aspratio*xsize > ysize) { nxsize = ysize/aspratio; nysize = ysize; } else { nxsize = xsize; nysize = xsize*aspratio; } /* center plot within page */ vpxmin = .5*(xsize-nxsize)+lb; vpxmax = vpxmin + nxsize; vpymin = .5*(ysize-nysize)+bb; vpymax = vpymin + nysize; plsvpa(vpxmin,vpxmax,vpymin,vpymax); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.