Mercurial > hg > octave-lyh
annotate scripts/plot/feather.m @ 14237:11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Add clf() to all demos using plot features to get reproducibility.
Use 64 as input to all colormaps (jet (64)) to get reproducibility.
* bicubic.m, cell2mat.m, celldisp.m, cplxpair.m, interp1.m, interp2.m,
interpft.m, interpn.m, profile.m, profshow.m, convhull.m, delaunay.m,
griddata.m, inpolygon.m, voronoi.m, autumn.m, bone.m, contrast.m, cool.m,
copper.m, flag.m, gmap40.m, gray.m, hot.m, hsv.m, image.m, imshow.m, jet.m,
ocean.m, pink.m, prism.m, rainbow.m, spring.m, summer.m, white.m, winter.m,
condest.m, onenormest.m, axis.m, clabel.m, colorbar.m, comet.m, comet3.m,
compass.m, contour.m, contour3.m, contourf.m, cylinder.m, daspect.m,
ellipsoid.m, errorbar.m, ezcontour.m, ezcontourf.m, ezmesh.m, ezmeshc.m,
ezplot.m, ezplot3.m, ezpolar.m, ezsurf.m, ezsurfc.m, feather.m, fill.m,
fplot.m, grid.m, hold.m, isosurface.m, legend.m, loglog.m, loglogerr.m,
pareto.m, patch.m, pbaspect.m, pcolor.m, pie.m, pie3.m, plot3.m, plotmatrix.m,
plotyy.m, polar.m, quiver.m, quiver3.m, rectangle.m, refreshdata.m, ribbon.m,
rose.m, scatter.m, scatter3.m, semilogx.m, semilogxerr.m, semilogy.m,
semilogyerr.m, shading.m, slice.m, sombrero.m, stairs.m, stem.m, stem3.m,
subplot.m, surf.m, surfc.m, surfl.m, surfnorm.m, text.m, title.m, trimesh.m,
triplot.m, trisurf.m, uigetdir.m, uigetfile.m, uimenu.m, uiputfile.m,
waitbar.m, xlim.m, ylim.m, zlim.m, mkpp.m, pchip.m, polyaffine.m, spline.m,
bicgstab.m, cgs.m, gplot.m, pcg.m, pcr.m, treeplot.m, strtok.m, demo.m,
example.m, rundemos.m, speed.m, test.m, calendar.m, datestr.m, datetick.m,
weekday.m: Revamp %!demos to use Octave coding conventions on spacing, etc.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Fri, 20 Jan 2012 12:59:53 -0800 |
parents | 72c96de7a403 |
children | ce2b59a6d0e5 |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
14092
diff
changeset
|
1 ## Copyright (C) 2007-2012 David Bateman |
7322 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
9 ## | |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
16 ## along with Octave; see the file COPYING. If not, see | |
17 ## <http://www.gnu.org/licenses/>. | |
18 | |
19 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
20 ## @deftypefn {Function File} {} feather (@var{u}, @var{v}) |
7322 | 21 ## @deftypefnx {Function File} {} feather (@var{z}) |
22 ## @deftypefnx {Function File} {} feather (@dots{}, @var{style}) | |
23 ## @deftypefnx {Function File} {} feather (@var{h}, @dots{}) | |
24 ## @deftypefnx {Function File} {@var{h} =} feather (@dots{}) | |
25 ## | |
26 ## Plot the @code{(@var{u}, @var{v})} components of a vector field emanating | |
9040
dbd0c77e575e
Cleanup documentation file plot.texi
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
27 ## from equidistant points on the x-axis. If a single complex argument |
7322 | 28 ## @var{z} is given, then @code{@var{u} = real (@var{z})} and |
29 ## @code{@var{v} = imag (@var{z})}. | |
30 ## | |
31 ## The style to use for the plot can be defined with a line style @var{style} | |
32 ## in a similar manner to the line styles used with the @code{plot} command. | |
33 ## | |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
34 ## The optional return value @var{h} is a vector of graphics handles to the |
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
35 ## line objects representing the drawn vectors. |
7322 | 36 ## |
37 ## @example | |
38 ## @group | |
39 ## phi = [0 : 15 : 360] * pi / 180; | |
40 ## feather (sin (phi), cos (phi)) | |
41 ## @end group | |
42 ## @end example | |
43 ## | |
44 ## @seealso{plot, quiver, compass} | |
45 ## @end deftypefn | |
46 | |
47 function retval = feather (varargin) | |
48 | |
49 [h, varargin, nargin] = __plt_get_axis_arg__ ("feather", varargin{:}); | |
50 | |
51 arrowsize = 0.25; | |
52 | |
9502
69a57c59868c
compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents:
9245
diff
changeset
|
53 if (nargin == 0) |
69a57c59868c
compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents:
9245
diff
changeset
|
54 print_usage (); |
69a57c59868c
compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents:
9245
diff
changeset
|
55 elseif (nargin == 1 || (nargin == 2 && ! isnumeric (varargin{2}))) |
7322 | 56 ioff = 2; |
9502
69a57c59868c
compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents:
9245
diff
changeset
|
57 z = varargin{1}(:).'; |
7322 | 58 u = real (z); |
59 v = imag (z); | |
9502
69a57c59868c
compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents:
9245
diff
changeset
|
60 elseif (nargin > 1 && isnumeric (varargin{2})) |
7322 | 61 ioff = 3; |
9502
69a57c59868c
compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents:
9245
diff
changeset
|
62 u = varargin{1}(:).'; |
69a57c59868c
compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents:
9245
diff
changeset
|
63 v = varargin{2}(:).'; |
7322 | 64 endif |
65 | |
66 line_spec = "b-"; | |
9502
69a57c59868c
compass.m, feather.m: simplify argument processing
John W. Eaton <jwe@octave.org>
parents:
9245
diff
changeset
|
67 have_line_spec = false; |
7322 | 68 while (ioff <= nargin) |
69 arg = varargin{ioff++}; | |
7768
a2d9f325b65a
Use isschar instead of deprecated isstr
Rafael Laboissiere <rafael@debian.org>
parents:
7322
diff
changeset
|
70 if ((ischar (arg) || iscell (arg)) && ! have_line_spec) |
7322 | 71 [linespec, valid] = __pltopt__ ("feather", arg, false); |
72 if (valid) | |
10549 | 73 line_spec = arg; |
74 have_line_spec = false; | |
75 break; | |
7322 | 76 else |
10549 | 77 error ("feather: invalid linespec"); |
7322 | 78 endif |
79 else | |
80 error ("feather: unrecognized argument"); | |
81 endif | |
82 endwhile | |
83 | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
84 ## Matlab draws feather plots, with the arrow head as one continous |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
85 ## line, and each arrow separately. This is completely different than |
7322 | 86 ## quiver and quite ugly. |
87 n = length (u); | |
88 xend = [1 : n] + u; | |
89 xtmp = [1 : n] + u .* (1 - arrowsize); | |
90 yend = v; | |
91 ytmp = v .* (1 - arrowsize); | |
92 x = [[1 : n]; xend; xtmp - v * arrowsize; xend; ... | |
93 xtmp + v * arrowsize]; | |
94 y = [zeros(1, n); yend; ytmp + u * arrowsize / 3; yend; ... | |
95 ytmp - u * arrowsize / 3]; | |
96 | |
97 oldh = gca (); | |
98 unwind_protect | |
99 axes (h); | |
100 newplot (); | |
101 hlist = plot (h, x, y, line_spec, [1, n], [0, 0], line_spec); | |
102 unwind_protect_cleanup | |
103 axes (oldh); | |
104 end_unwind_protect | |
105 | |
106 if (nargout > 0) | |
107 retval = hlist; | |
108 endif | |
109 | |
110 endfunction | |
111 | |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
112 |
7322 | 113 %!demo |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
114 %! clf; |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
115 %! phi = [0 : 15 : 360] * pi/180; |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
116 %! feather (sin (phi), cos (phi)); |
14001
5f0bb45e615c
doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
117 |