Mercurial > octave-nkf
changeset 12792:dc29b64668fa
codesprint : Move trimesh, triplot, trisurf from geometry to plot directory
* geometry/module.mk, plot/module.mk: Move trimesh, triplot, trisurf from geometry to plot directory.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Sat, 16 Jul 2011 09:16:52 -0700 |
parents | 610a4e780a19 |
children | 6f91ca83d2be |
files | scripts/geometry/module.mk scripts/geometry/trimesh.m scripts/geometry/triplot.m scripts/geometry/trisurf.m scripts/plot/module.mk scripts/plot/trimesh.m scripts/plot/triplot.m scripts/plot/trisurf.m |
diffstat | 8 files changed, 224 insertions(+), 224 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/geometry/module.mk Sat Jul 16 11:07:15 2011 -0500 +++ b/scripts/geometry/module.mk Sat Jul 16 09:16:52 2011 -0700 @@ -12,9 +12,6 @@ geometry/griddatan.m \ geometry/inpolygon.m \ geometry/rectint.m \ - geometry/trimesh.m \ - geometry/triplot.m \ - geometry/trisurf.m \ geometry/tsearchn.m \ geometry/voronoi.m \ geometry/voronoin.m
--- a/scripts/geometry/trimesh.m Sat Jul 16 11:07:15 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -## Copyright (C) 2007-2011 David Bateman -## -## This file is part of Octave. -## -## Octave is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or (at -## your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <http://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {Function File} {} trimesh (@var{tri}, @var{x}, @var{y}, @var{z}) -## @deftypefnx {Function File} {@var{h} =} trimesh (@dots{}) -## Plot a triangular mesh in 3D@. The variable @var{tri} is the triangular -## meshing of the points @code{(@var{x}, @var{y})} which is returned -## from @code{delaunay}. The variable @var{z} is value at the point -## @code{(@var{x}, @var{y})}. The output argument @var{h} is the graphic -## handle of the plot. -## @seealso{triplot, trisurf, delaunay3} -## @end deftypefn - -function h = trimesh (tri, x, y, z, varargin) - - if (nargin < 3) - print_usage (); - endif - - if (nargin == 3) - triplot (tri, x, y); - elseif (ischar (z)) - triplot (tri, x, y, z, varargin{:}); - else - newplot (); - if (nargout > 0) - h = patch ("Vertices", [x(:), y(:), z(:)], "Faces", tri, - "FaceColor", "none", "EdgeColor", __next_line_color__(), - varargin{:}); - else - patch ("Vertices", [x(:), y(:), z(:)], "Faces", tri, - "FaceColor", "none", "EdgeColor", __next_line_color__(), - varargin{:}); - endif - - if (! ishold ()) - set (gca(), "view", [-37.5, 30], - "xgrid", "on", "ygrid", "on", "zgrid", "on"); - endif - endif -endfunction - -%!demo -%! N = 10; -%! rand ('state', 10) -%! x = 3 - 6 * rand (N, N); -%! y = 3 - 6 * rand (N, N); -%! z = peaks (x, y); -%! tri = delaunay (x(:), y(:)); -%! trimesh (tri, x(:), y(:), z(:));
--- a/scripts/geometry/triplot.m Sat Jul 16 11:07:15 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -## Copyright (C) 2007-2011 David Bateman -## -## This file is part of Octave. -## -## Octave is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or (at -## your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <http://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {Function File} {} triplot (@var{tri}, @var{x}, @var{y}) -## @deftypefnx {Function File} {} triplot (@var{tri}, @var{x}, @var{y}, @var{linespec}) -## @deftypefnx {Function File} {@var{h} =} triplot (@dots{}) -## Plot a triangular mesh in 2D@. The variable @var{tri} is the triangular -## meshing of the points @code{(@var{x}, @var{y})} which is returned from -## @code{delaunay}. If given, the @var{linespec} determines the properties -## to use for the lines. The output argument @var{h} is the graphic handle -## of the plot. -## @seealso{plot, trimesh, trisurf, delaunay} -## @end deftypefn - -function h = triplot (tri, x, y, varargin) - - if (nargin < 3) - print_usage (); - endif - - idx = tri(:, [1, 2, 3, 1]).'; - nt = size (tri, 1); - if (nargout > 0) - h = plot ([x(idx); NaN(1, nt)](:), - [y(idx); NaN(1, nt)](:), varargin{:}); - else - plot ([x(idx); NaN(1, nt)](:), - [y(idx); NaN(1, nt)](:), varargin{:}); - endif -endfunction - -%!demo -%! rand ('state', 2) -%! x = rand (20, 1); -%! y = rand (20, 1); -%! tri = delaunay (x, y); -%! triplot (tri, x, y);
--- a/scripts/geometry/trisurf.m Sat Jul 16 11:07:15 2011 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -## Copyright (C) 2007-2011 David Bateman -## -## This file is part of Octave. -## -## Octave is free software; you can redistribute it and/or modify it -## under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 3 of the License, or (at -## your option) any later version. -## -## Octave is distributed in the hope that it will be useful, but -## WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -## General Public License for more details. -## -## You should have received a copy of the GNU General Public License -## along with Octave; see the file COPYING. If not, see -## <http://www.gnu.org/licenses/>. - -## -*- texinfo -*- -## @deftypefn {Function File} {} trisurf (@var{tri}, @var{x}, @var{y}, @var{z}) -## @deftypefnx {Function File} {@var{h} =} trisurf (@dots{}) -## Plot a triangular surface in 3D@. The variable @var{tri} is the triangular -## meshing of the points @code{(@var{x}, @var{y})} which is returned -## from @code{delaunay}. The variable @var{z} is value at the point -## @code{(@var{x}, @var{y})}. The output argument @var{h} is the graphic -## handle of the plot. -## @seealso{triplot, trimesh, delaunay3} -## @end deftypefn - -function varargout = trisurf (tri, x, y, z, varargin) - - if (nargin < 3) - print_usage (); - endif - - if (nargin == 3) - triplot (tri, x, y); - elseif (ischar (z)) - triplot (tri, x, y, z, varargin{:}); - else - if (nargin > 4 && isnumeric (varargin{1})) - c = varargin{1}; - varargin(1) = []; - else - c = z; - endif - if (! any (strcmpi (varargin, "FaceColor"))) - nfc = numel (varargin) + 1; - varargin(nfc+(0:1)) = {"FaceColor", "flat"}; - else - nfc = find (any (strcmpi (varargin, "FaceColor")), 1); - endif - if (! any (strcmpi (varargin, "EdgeColor")) - && strcmpi (varargin{nfc+1}, "interp")) - varargin(end+(1:2)) = {"EdgeColor", "none"}; - endif - newplot (); - h = patch ("Faces", tri, "Vertices", [x(:), y(:), z(:)], - "FaceVertexCData", reshape (c, numel (c), 1), - varargin{:}); - if (nargout > 0) - varargout = {h}; - endif - - if (! ishold ()) - set (gca(), "view", [-37.5, 30], - "xgrid", "on", "ygrid", "on", "zgrid", "on"); - endif - endif -endfunction - -%!demo -%! N = 10; -%! rand ('state', 10) -%! x = 3 - 6 * rand (N, N); -%! y = 3 - 6 * rand (N, N); -%! z = peaks (x, y); -%! tri = delaunay (x(:), y(:)); -%! trisurf (tri, x(:), y(:), z(:)); - -%!demo -%! x = rand (100, 1); -%! y = rand (100, 1); -%! z = x.^2 + y.^2; -%! tri = delaunay (x, y); -%! trisurf (tri, x, y, z) - -%!demo -%! x = rand (100, 1); -%! y = rand (100, 1); -%! z = x.^2 + y.^2; -%! tri = delaunay (x, y); -%! trisurf (tri, x, y, z, "facecolor", "interp") - -%!demo -%! x = rand (100, 1); -%! y = rand (100, 1); -%! z = x.^2 + y.^2; -%! tri = delaunay (x, y); -%! trisurf (tri, x, y, z, "facecolor", "interp", "edgecolor", "k") - -
--- a/scripts/plot/module.mk Sat Jul 16 11:07:15 2011 -0500 +++ b/scripts/plot/module.mk Sat Jul 16 09:16:52 2011 -0700 @@ -171,6 +171,9 @@ plot/surfnorm.m \ plot/text.m \ plot/title.m \ + plot/trimesh.m \ + plot/triplot.m \ + plot/trisurf.m \ plot/uigetdir.m \ plot/uigetfile.m \ plot/uimenu.m \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/plot/trimesh.m Sat Jul 16 09:16:52 2011 -0700 @@ -0,0 +1,66 @@ +## Copyright (C) 2007-2011 David Bateman +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {} trimesh (@var{tri}, @var{x}, @var{y}, @var{z}) +## @deftypefnx {Function File} {@var{h} =} trimesh (@dots{}) +## Plot a triangular mesh in 3D@. The variable @var{tri} is the triangular +## meshing of the points @code{(@var{x}, @var{y})} which is returned +## from @code{delaunay}. The variable @var{z} is value at the point +## @code{(@var{x}, @var{y})}. The output argument @var{h} is the graphic +## handle of the plot. +## @seealso{triplot, trisurf, delaunay3} +## @end deftypefn + +function h = trimesh (tri, x, y, z, varargin) + + if (nargin < 3) + print_usage (); + endif + + if (nargin == 3) + triplot (tri, x, y); + elseif (ischar (z)) + triplot (tri, x, y, z, varargin{:}); + else + newplot (); + if (nargout > 0) + h = patch ("Vertices", [x(:), y(:), z(:)], "Faces", tri, + "FaceColor", "none", "EdgeColor", __next_line_color__(), + varargin{:}); + else + patch ("Vertices", [x(:), y(:), z(:)], "Faces", tri, + "FaceColor", "none", "EdgeColor", __next_line_color__(), + varargin{:}); + endif + + if (! ishold ()) + set (gca(), "view", [-37.5, 30], + "xgrid", "on", "ygrid", "on", "zgrid", "on"); + endif + endif +endfunction + +%!demo +%! N = 10; +%! rand ('state', 10) +%! x = 3 - 6 * rand (N, N); +%! y = 3 - 6 * rand (N, N); +%! z = peaks (x, y); +%! tri = delaunay (x(:), y(:)); +%! trimesh (tri, x(:), y(:), z(:));
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/plot/triplot.m Sat Jul 16 09:16:52 2011 -0700 @@ -0,0 +1,53 @@ +## Copyright (C) 2007-2011 David Bateman +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {} triplot (@var{tri}, @var{x}, @var{y}) +## @deftypefnx {Function File} {} triplot (@var{tri}, @var{x}, @var{y}, @var{linespec}) +## @deftypefnx {Function File} {@var{h} =} triplot (@dots{}) +## Plot a triangular mesh in 2D@. The variable @var{tri} is the triangular +## meshing of the points @code{(@var{x}, @var{y})} which is returned from +## @code{delaunay}. If given, the @var{linespec} determines the properties +## to use for the lines. The output argument @var{h} is the graphic handle +## of the plot. +## @seealso{plot, trimesh, trisurf, delaunay} +## @end deftypefn + +function h = triplot (tri, x, y, varargin) + + if (nargin < 3) + print_usage (); + endif + + idx = tri(:, [1, 2, 3, 1]).'; + nt = size (tri, 1); + if (nargout > 0) + h = plot ([x(idx); NaN(1, nt)](:), + [y(idx); NaN(1, nt)](:), varargin{:}); + else + plot ([x(idx); NaN(1, nt)](:), + [y(idx); NaN(1, nt)](:), varargin{:}); + endif +endfunction + +%!demo +%! rand ('state', 2) +%! x = rand (20, 1); +%! y = rand (20, 1); +%! tri = delaunay (x, y); +%! triplot (tri, x, y);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/plot/trisurf.m Sat Jul 16 09:16:52 2011 -0700 @@ -0,0 +1,102 @@ +## Copyright (C) 2007-2011 David Bateman +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {} trisurf (@var{tri}, @var{x}, @var{y}, @var{z}) +## @deftypefnx {Function File} {@var{h} =} trisurf (@dots{}) +## Plot a triangular surface in 3D@. The variable @var{tri} is the triangular +## meshing of the points @code{(@var{x}, @var{y})} which is returned +## from @code{delaunay}. The variable @var{z} is value at the point +## @code{(@var{x}, @var{y})}. The output argument @var{h} is the graphic +## handle of the plot. +## @seealso{triplot, trimesh, delaunay3} +## @end deftypefn + +function varargout = trisurf (tri, x, y, z, varargin) + + if (nargin < 3) + print_usage (); + endif + + if (nargin == 3) + triplot (tri, x, y); + elseif (ischar (z)) + triplot (tri, x, y, z, varargin{:}); + else + if (nargin > 4 && isnumeric (varargin{1})) + c = varargin{1}; + varargin(1) = []; + else + c = z; + endif + if (! any (strcmpi (varargin, "FaceColor"))) + nfc = numel (varargin) + 1; + varargin(nfc+(0:1)) = {"FaceColor", "flat"}; + else + nfc = find (any (strcmpi (varargin, "FaceColor")), 1); + endif + if (! any (strcmpi (varargin, "EdgeColor")) + && strcmpi (varargin{nfc+1}, "interp")) + varargin(end+(1:2)) = {"EdgeColor", "none"}; + endif + newplot (); + h = patch ("Faces", tri, "Vertices", [x(:), y(:), z(:)], + "FaceVertexCData", reshape (c, numel (c), 1), + varargin{:}); + if (nargout > 0) + varargout = {h}; + endif + + if (! ishold ()) + set (gca(), "view", [-37.5, 30], + "xgrid", "on", "ygrid", "on", "zgrid", "on"); + endif + endif +endfunction + +%!demo +%! N = 10; +%! rand ('state', 10) +%! x = 3 - 6 * rand (N, N); +%! y = 3 - 6 * rand (N, N); +%! z = peaks (x, y); +%! tri = delaunay (x(:), y(:)); +%! trisurf (tri, x(:), y(:), z(:)); + +%!demo +%! x = rand (100, 1); +%! y = rand (100, 1); +%! z = x.^2 + y.^2; +%! tri = delaunay (x, y); +%! trisurf (tri, x, y, z) + +%!demo +%! x = rand (100, 1); +%! y = rand (100, 1); +%! z = x.^2 + y.^2; +%! tri = delaunay (x, y); +%! trisurf (tri, x, y, z, "facecolor", "interp") + +%!demo +%! x = rand (100, 1); +%! y = rand (100, 1); +%! z = x.^2 + y.^2; +%! tri = delaunay (x, y); +%! trisurf (tri, x, y, z, "facecolor", "interp", "edgecolor", "k") + +