ftp.nice.ch/pub/next/unix/developer/plplot.3.0.s.tar.gz#/plplot/src/plvasp.c

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.