1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
include <gset.h>
include "gtools.h"
# GT_VPLOT -- Plot vector polymarks or polylines.
procedure gt_vplot (gp, gt, v, npts, x1, x2)
pointer gp # GIO pointer
pointer gt # GTOOLS pointer
real v[npts] # Abscissas
int npts # Number of points
real x1, x2 # Vector range
int i, pltype, color, gstati()
real x, dx
begin
switch (GT_TYPE(gt)) {
case 1:
color = gstati (gp, G_PMCOLOR)
call gseti (gp, G_PMCOLOR, GT_COLOR(gt))
call gvmark (gp, v, npts, x1, x2, GT_MARK(gt), GT_XSIZE(gt),
GT_YSIZE(gt))
call gseti (gp, G_PMCOLOR, color)
case 2:
color = gstati (gp, G_PLCOLOR)
call gseti (gp, G_PLCOLOR, GT_COLOR(gt))
pltype = gstati (gp, G_PLTYPE)
call gseti (gp, G_PLTYPE, GT_LINE(gt))
call gvline (gp, v, npts, x1, x2)
call gseti (gp, G_PLTYPE, pltype)
call gseti (gp, G_PLCOLOR, color)
case 3:
color = gstati (gp, G_PLCOLOR)
call gseti (gp, G_PLCOLOR, GT_COLOR(gt))
pltype = gstati (gp, G_PLTYPE)
call gseti (gp, G_PLTYPE, GT_LINE(gt))
dx = (x2 - x1) / (npts - 1)
x = x1 - dx / 2
do i = 1, npts-1 {
x = x + dx
call gline (gp, x-dx, v[i], x, v[i])
call gline (gp, x, v[i], x, v[i+1])
}
call gline (gp, x, v[npts], x+dx, v[npts])
call gseti (gp, G_PLTYPE, pltype)
call gseti (gp, G_PLCOLOR, color)
}
end
|