home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d2xx
/
d222
/
plplot.lha
/
Plplot
/
src
/
source.zoo
/
plwind.c
< prev
next >
Wrap
C/C++ Source or Header
|
1989-05-15
|
2KB
|
68 lines
#include "plplot.h"
void plwind(xmin,xmax,ymin,ymax)
float xmin, xmax, ymin, ymax;
{
int vppxmi, vppxma, vppymi, vppyma;
float dx, dy;
float vpwxmi, vpwxma, vpwymi, vpwyma;
float vpxmi, vpxma, vpymi, vpyma;
float wpxscl, wpxoff, wpyscl, wpyoff;
float wmxscl, wmxoff, wmyscl, wmyoff;
int level;
glev(&level);
if (level<2) fatal("Please set up viewport before calling PLWIND.");
gvpp(&vppxmi,&vppxma,&vppymi,&vppyma);
gvpd(&vpxmi,&vpxma,&vpymi,&vpyma);
dx = (xmax-xmin) * 1.0e-5;
dy = (ymax-ymin) * 1.0e-5;
if ((xmin == xmax) || (ymin == ymax))
fatal("Invalid window limits in PLWIND.");
/* The true plot window is made slightly larger than requested so that */
/* the end limits will be on the graph */
svpw(xmin-dx,xmax+dx,ymin-dy,ymax+dy);
gvpw(&vpwxmi,&vpwxma,&vpwymi,&vpwyma);
/* Compute the scaling between coordinate systems */
dx = vpwxma - vpwxmi;
dy = vpwyma - vpwymi;
wpxscl = (vppxma - vppxmi) / dx;
wpxoff = (xmax * vppxmi - xmin * vppxma) / dx;
wpyscl = (vppyma - vppymi) / dy;
wpyoff = (ymax * vppymi - ymin * vppyma) / dy;
swp(wpxscl,wpxoff,wpyscl,wpyoff);
vpxmi = dcmmx(vpxmi);
vpxma = dcmmx(vpxma);
vpymi = dcmmy(vpymi);
vpyma = dcmmy(vpyma);
wmxscl = (vpxma - vpxmi) / dx;
wmxoff = (xmax * vpxmi - xmin * vpxma) / dx;
wmyscl = (vpyma - vpymi) / dy;
wmyoff = (ymax * vpymi - ymin * vpyma) / dy;
swm(wmxscl,wmxoff,wmyscl,wmyoff);
slev(3);
}SHAR_EOF
cho "extracting plxtik.c"
ed 's/^X//' << \SHAR_EOF > plxtik.c
#include "plplot.h"
void plxtik(x,y,below,above)
int x, y, below, above;
{
draphy(x,y);
if (below != 0) draphy(x,y-below);
if (above != 0) draphy(x,y+above);
draphy(x,y);
}