Mercurial > hg > octave-lyh
comparison scripts/plot/surface.m @ 7207:71c03c7239fb
[project @ 2007-11-28 02:19:25 by jwe]
author | jwe |
---|---|
date | Wed, 28 Nov 2007 02:20:48 +0000 |
parents | b48a21816f2e |
children | a730e47fda4d |
comparison
equal
deleted
inserted
replaced
7206:6e4ceeeb1940 | 7207:71c03c7239fb |
---|---|
39 | 39 |
40 ## Author: jwe | 40 ## Author: jwe |
41 | 41 |
42 function h = surface (varargin) | 42 function h = surface (varargin) |
43 | 43 |
44 ax = gca (); | 44 if (isscalar (varargin{1}) && ishandle (varargin{1})) |
45 h = varargin {1}; | |
46 if (! strcmp (get (h, "type"), "axes")) | |
47 error ("surface: expecting first argument to be an axes object"); | |
48 endif | |
49 oldh = gca (); | |
50 unwind_protect | |
51 axes (h); | |
52 [tmp, bad_usage] = __surface__ (h, varargin{2:end}); | |
53 unwind_protect_cleanup | |
54 axes (oldh); | |
55 end_unwind_protect | |
56 else | |
57 [tmp, bad_usage] = __surface__ (gca (), varargin{:}); | |
58 endif | |
45 | 59 |
46 firststring = nargin + 1; | 60 if (bad_usage) |
47 for i = 1 : nargin | 61 print_usage (); |
48 if (ischar (varargin {i})) | 62 endif |
49 firststring = i; | 63 |
64 if (nargout > 0) | |
65 h = tmp; | |
66 endif | |
67 endfunction | |
68 | |
69 function [h, bad_usage] = __surface__ (ax, varargin) | |
70 | |
71 bad_usage = false; | |
72 h = 0; | |
73 firststring = nargin; | |
74 for i = 2 : nargin | |
75 if (ischar (varargin {i - 1})) | |
76 firststring = i - 1; | |
50 break; | 77 break; |
51 endif | 78 endif |
52 endfor | 79 endfor |
53 | 80 |
54 | |
55 if (firststring > 5) | 81 if (firststring > 5) |
56 print_usage (); | 82 bad_usage = true; |
57 elseif (firststring == 5) | 83 elseif (firststring == 5) |
58 x = varargin{1}; | 84 x = varargin{1}; |
59 y = varargin{2}; | 85 y = varargin{2}; |
60 z = varargin{3}; | 86 z = varargin{3}; |
61 c = varargin{4}; | 87 c = varargin{4}; |
115 y = (1:nr)'; | 141 y = (1:nr)'; |
116 else | 142 else |
117 error ("surface: argument must be a matrix"); | 143 error ("surface: argument must be a matrix"); |
118 endif | 144 endif |
119 else | 145 else |
120 print_usage (); | 146 bad_usage = true; |
121 endif | 147 endif |
122 | 148 |
123 ## Make a default surface object. | 149 if (! bad_usage) |
124 tmp = __go_surface__ (ax, "xdata", x, "ydata", y, "zdata", z, "cdata", c); | 150 ## Make a default surface object. |
125 set (tmp, "facecolor","flat"); | 151 h = __go_surface__ (ax, "xdata", x, "ydata", y, "zdata", z, "cdata", c); |
126 if (firststring <= nargin) | 152 set (h, "facecolor","flat"); |
127 set (tmp, varargin {firststring:end}); | 153 if (firststring < nargin) |
128 endif | 154 set (h, varargin {firststring:end}); |
155 endif | |
129 | 156 |
130 if (! ishold ()) | 157 if (! ishold ()) |
131 set (ax, "view", [0, 90], "box", "off", "xgrid", "on", | 158 set (ax, "view", [0, 90], "box", "off", "xgrid", "on", |
132 "ygrid", "on", "zgrid", "on"); | 159 "ygrid", "on", "zgrid", "on"); |
133 endif | 160 endif |
134 | 161 endif |
135 if (nargout > 0) | |
136 h = tmp; | |
137 endif | |
138 | 162 |
139 endfunction | 163 endfunction |