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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
contour Scilab Group Scilab Function contour
NAME
contour - level curves on a 3D surface
CALLING SEQUENCE
contour(x,y,z,nz,[theta,alpha,leg,flag,ebox,zlev])
contour(x,y,z,nz,<opt_args>)
PARAMETERS
x,y : two real row vectors of size n1 and n2.
z : real matrix of size (n1,n2), the values of the function.
nz : the level values or the number of levels.
- If nz is an integer, its value gives the number of level curves
equally spaced from zmin to zmax as follows:
z= zmin + (1:nz)*(zmax-zmin)/(nz+1)
Note that the zmin and zmax levels are not drawn (generically
they are reduced to points) but they can be added with
[im,jm] = find(z == zmin); // or zmax
plot2d(x(im)',y(jm)',-9,"000")
- If nz is a vector, nz(i) gives the value of the ith level
curve. Note that it can be useful in order to see zmin and
zmax level curves to add an epsilon tolerance: nz=[
zmin+%eps,..,zmax-%eps].
<opt_args>
: a sequence of statements key1=value1, key2=value2, ... where keys may
be theta,alpha,leg, flag, ebox,zlev (see below). In this case, the
order has no special meaning.
theta, alpha
: real values giving in degree the spherical coordinates of the
observation point.
leg : string defining the captions for each axis with @ as a field
separator, for example "X@Y@Z".
flag : a real vector of size three flag=[mode,type,box].
mode : string (treatment of hidden parts).
mode>0
the hidden parts of the surface are removed and the surface is
painted with color mode.
mode=0
the hidden parts of the surface are drawn.
mode<0
only the shadow of the surface is painted with color or
pattern id -mode. Use xset() to see the meaning of the
ids.
type : an integer (scaling).
type=0 the plot is made using the current 3D scaling (set by
a previous call to param3d, plot3d, contour or
plot3d1).
type=1 rescales automatically 3d boxes with extreme aspect
ratios, the boundaries are specified by the value of
the optional argument ebox.
type=2 rescales automatically 3d boxes with extreme aspect
ratios, the boundaries are computed using the given
data.
type=3 3d isometric with box bounds given by optional ebox,
similarily to type=1
type=4 3d isometric bounds derived from the data, to
similarilytype=2
type=5 3d expanded isometric bounds with box bounds given
by optional ebox, similarily to type=1
type=6 3d expanded isometric bounds derived from the data,
similarily to type=2
box : an integer (frame around the plot).
box=0
nothing is drawn around the plot.
box=1
unimplemented (like box=0).
box=2
only the axes behind the surface are drawn.
box=3
a box surrounding the surface is drawn and captions are added.
box=4
a box surrounding the surface is drawn, captions and axes are
added.
ebox : used when type in flag is 1. It specifies the boundaries of the
plot as the vector [xmin,xmax,ymin,ymax,zmin,zmax].
zlev : real number.
DESCRIPTION
contour draws level curves of a surface z=f(x,y). The level curves are
drawn on a 3D surface. The optional arguments are the same as for the
function plot3d (except zlev) and their meanings are the same. They
control the drawing of level curves on a 3D plot. Only flag(1)=mode has a
special meaning.
mode=0 : the level curves are drawn on the surface defined by (x,y,z).
mode=1 : the level curves are drawn on a 3D plot and on the plan
defined by the equation z=zlev.
mode=2 : the level curves are drawn on a 2D plot.
You can change the format of the floating point number printed on the
levels by using xset("fpf",string) where string gives the format in C
format syntax (for example string="%.3f"). Use string="" to switch back
to default format.
Usually we use contour2d to draw levels curves on a 2D plot. Enter the
command contour() to see a demo.
EXAMPLE
t=%pi*[-10:10]/10;
deff("[z]=surf(x,y)","z=sin(x)*cos(y)"); z=feval(t,t,surf);
rect=[-%pi,%pi,-%pi,%pi,-1,1];
contour(t,t,z,10,35,45," ",[0,1,0],rect)
// changing the format of the printing of the levels
xset("fpf","%.2f")
xbasc()
contour(t,t,z,10,flag=[0,1,0],ebox=rect)
SEE ALSO
contour2d, fcontour, fcontour2d, plot3d, xset
AUTHOR
J.Ph.C.
|