octave-maintainers
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]