[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Last Octave core plotting function from octave-forge
From: |
David Bateman |
Subject: |
Last Octave core plotting function from octave-forge |
Date: |
Wed, 12 Dec 2007 09:29:29 +0100 |
User-agent: |
Thunderbird 1.5.0.7 (X11/20060921) |
I tried to port all of the core plotting functions from octave-forge to
octave a short time ago. It seems someone added one, that as a core
function should be in Octave itself. Here is a rework of that function
to be more like the other plotting functions in Octave.
Regards
David
*** ./scripts/plot/ellipsoid.m.orig11 2007-12-12 09:25:09.982525130 +0100
--- ./scripts/plot/ellipsoid.m 2007-12-12 09:28:38.265009792 +0100
***************
*** 0 ****
--- 1,68 ----
+ ## Copyright (C) 2007 Sylvain Pelissier <address@hidden>
+ ##
+ ## This program 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 2 of the License, or
+ ## (at your option) any later version.
+ ##
+ ## This program 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 this program; if not, write to the Free Software
+ ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ ## -*- texinfo -*-
+ ## @deftypefn {Function File} address@hidden, @var{y}, @var{z}] =} ellipsoid
(@var{xc},@var{yc}, @var{zc}, @var{xr}, @var{yr}, @var{zr}, @var{n})
+ ## @deftypefnx {Function File} {} ellipsoid (@var{h}, @dots{})
+ ## Generates three matrices in @code{meshgrid} format, of an ellipsoid.
+ ## Called with no return arguments, @code{ellipsoid} calls directly
+ ## @code{surf (@var{x}, @var{y}, @var{z})}. If an axes handle is passed
+ ## as the first argument, the the surface is plotted to this set of axes.
+ ## @seealso{sphere}
+ ## @end deftypefn
+
+ function [xx, yy, zz] = ellipsoid(varargin)
+
+ [h, varargin, nargin] = __plt_get_axis_arg__ ((nargout > 0), "ellipsoid",
+ varargin{:});
+
+ if (nargin != 6 && nargin != 7)
+ print_usage ();
+ endif
+
+ xc = varargin{1};
+ yc = varargin{2};
+ zc = varargin{3};
+ xr = varargin{4};
+ yr = varargin{5};
+ zr = varargin{6};
+
+ if (nargin == 5)
+ n = 20;
+ else
+ n = varargin{7};
+ endif
+
+ theta = linspace (0, 2 * pi, n + 1);
+ phi = linspace (-pi / 2, pi / 2, n + 1);
+ [theta, phi] = meshgrid (theta, phi);
+
+ x = xr .* cos (phi) .* cos (theta) + xc;
+ y = yr .* cos (phi) .* sin (theta) + yc;
+ z = zr .* sin (phi) + zc;
+
+ if (nargout > 0)
+ xx = x;
+ yy = y;
+ zz = z;
+ else
+ surf (h, x, y, z);
+ endif
+
+ endfunction
+
+ %!demo
+ %! ellipsoid (0, 0, 1, 2, 3, 4, 20);
*** ./scripts/plot/Makefile.in.orig11 2007-12-12 09:25:16.475197341 +0100
--- ./scripts/plot/Makefile.in 2007-12-12 09:21:23.777945283 +0100
***************
*** 84,89 ****
--- 84,90 ----
contourf.m \
cylinder.m \
drawnow.m \
+ ellipsoid.m \
errorbar.m \
figure.m \
fill.m \
2007-12-11 David Bateman <address@hidden>
* plot/ellipsoid.m: Port from octave-forge, editting for style.
* plot/Makefile.in (SOURCES): Add to the sources.
- Last Octave core plotting function from octave-forge,
David Bateman <=