1ISOSRF(3NCARG) NCAR GRAPHICS ISOSRF(3NCARG)
2
3
4
6 ISOSRF - Draws an isosurface.
7
9 CALL ISOSRF (F,LU,MU,LV,MV,MW,EYE,MUVWP2,SLAB,FISO,IFLAG)
10
12 #include <ncarg/ncargC.h>
13
14 void c_isosrf (float *f, int lu, int mu, int lv, int mv,
15 int mw, float eye[3], int muvwp2, float *slab, float fiso,
16 int iflag)
17
19 This routine is part of the Isosurface utility in NCAR Graphics. To
20 see the overview man page for this utility, type "man isosurface".
21
23 F (an input array of type REAL, dimensioned LU x LV x m,
24 where "m" is greater than or equal to MW) is a three-
25 dimensional array of data defining the function f(u,v,w).
26 Only the portion of the array consisting of elements
27 F(IU,IV,IW), for IU = 1 to MU, IV = 1 to MV, and IW = 1 to
28 MW, is to be used. This may or may not be the entire array.
29 The data are considered to lie in a box in 3-space with
30 opposite corners (in the UVW coordinate system) (1.,1.,1.)
31 and (REAL(MU),REAL(MV),REAL(MW)). The element F(IU,IV,IW)
32 is considered to be the value of the function f at the
33 point (REAL(IU),REAL(IV),REAL(IW)).
34
35 LU (an input expression of type INTEGER) is the first
36 dimension of the array F.
37
38 MU (an input expression of type INTEGER) defines the range to
39 be used for the first subscript of the array F.
40
41 LV (an input expression of type INTEGER) is the second
42 dimension of the array F.
43
44 MV (an input expression of type INTEGER) defines the range to
45 be used for the second subscript of the array F.
46
47 MW (an input expression of type INTEGER) defines the range to
48 be used for the third subscript of the array F.
49
50 EYE (an input array of type REAL, dimensioned 3) is the
51 position of the eye in the UVW coordinate system. The eye
52 position, at (EYE(1),EYE(2),EYE(3)), must be outside the
53 box containing the data. The point being looked at is at
54 the center of the data box and the projection plane is
55 perpendicular to the line of sight. While gaining
56 experience with the routine, a good choice for EYE is
57 (5.*REAL(MU),3.5*REAL(MV),2.*REAL(MW)).
58
59 MUVWP2 (an input expression of type INTEGER) has the value
60 MAX(MU,MV,MW)+2.
61
62 SLAB (a scratch array of type REAL, dimensioned at least MUVWP2
63 x MUVWP2) is a workspace for ISOSRF.
64
65 FISO (an input expression of type REAL) is the value of fiso in
66 the equation f(u,v,w)=fiso, which defines the isosurface to
67 be drawn.
68
69 IFLAG (an input expression of type INTEGER) serves two purposes:
70
71 · The absolute value of IFLAG determines which type of
72 lines are drawn to approximate the isosurface. Three
73 types of lines are considered: lines of constant U,
74 lines of constant V, and lines of constant W. The
75 following table lists the types of lines drawn for
76 various values of ABS(IFLAG):
77
78
79 ABS(IFLAG) Constant U Constant V Constant W
80
81 1 no no yes
82 2 no yes no
83 3 no yes yes
84 4 yes no no
85 5 yes no yes
86 6 yes yes no
87 7 yes yes yes
88
89 · The sign of IFLAG determines what is inside and what is
90 outside the solid bounded by the isosurface and thus
91 which lines are visible and what is done at the
92 boundary of the box containing the data. If IFLAG is
93 positive, values greater than FISO are considered to be
94 inside the solid formed by the isosurface. If IFLAG is
95 negative, values less than FISO are considered to be
96 inside the solid formed by the isosurface. If the
97 algorithm draws a cube, reverse the sign of IFLAG.
98
100 The C-binding argument descriptions are the same as the Fortran
101 argument descriptions, with the following exceptions:
102
103 f t is dimensioned mw by mv by mu
104
105 mu The third dimension of the array f
106
107 mw The first dimension of the array f
108
110 Transformations can be achieved by adjusting scaling statement
111 functions in ISOSRF, SET3D, and TR32.
112
113 The hidden-line algorithm is not exact, so visibility errors can occur.
114
115 Three-dimensional perspective character labeling of isosurfaces is
116 possible by calling the routine PWRZI.
117
119 Use the ncargex command to see the following relevant examples: tisosr,
120 tpwrzi, fisissrf, fispwrzi.
121
123 To use ISOSRF or c_isosrf load the NCAR Graphics libraries ncarg,
124 ncarg_gks, and ncarg_c, preferably in that order.
125
127 Online: isosurface, isosurface_params, ezisos, isgeti, isgetr, isseti,
128 issetr, pwrzi, ncarg_cbind
129
130 Hardcopy: NCAR Graphics Fundamentals, UNIX Version
131
133 Copyright (C) 1987-2009
134 University Corporation for Atmospheric Research
135 The use of this Software is governed by a License Agreement.
136
137
138
139UNIX March 1993 ISOSRF(3NCARG)