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
|