[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Port sphere.m form jhandles to Octave
From: |
David Bateman |
Subject: |
Port sphere.m form jhandles to Octave |
Date: |
Tue, 20 Nov 2007 17:42:25 +0100 |
User-agent: |
Thunderbird 1.5.0.7 (X11/20060921) |
Attached is the jhandles sphere function with a texinfo help string and
changes to allow it to accept an axes handle as the first argument. This
is a matlab core function and so should be in Octave.. This needs the
"depthorder" patch I sent earlier today to work correctly with gnuplot.
D.
--
David Bateman address@hidden
Motorola Labs - Paris +33 1 69 35 48 04 (Ph)
Parc Les Algorithmes, Commune de St Aubin +33 6 72 01 06 33 (Mob)
91193 Gif-Sur-Yvette FRANCE +33 1 69 35 77 01 (Fax)
The information contained in this communication has been classified as:
[x] General Business Information
[ ] Motorola Internal Use Only
[ ] Motorola Confidential Proprietary
*** ./scripts/plot/sphere.m.orig19 2007-11-20 17:05:40.937101286 +0100
--- ./scripts/plot/sphere.m 2007-11-20 17:02:13.238795574 +0100
***************
*** 0 ****
--- 1,77 ----
+ ## Copyright (C) 2007 Michael Goffioul
+ ##
+ ## 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ ## 02110-1301 USA
+
+ ## -*- texinfo -*-
+ ## @deftypefn {Function File} address@hidden, @var{y}, @var{z}] =} sphere
(@var{n})
+ ## @deftypefnx {Function File} {} sphere (@var{h}, @dots{})
+ ## Generates three matrices in @code{meshgrid} format, such that
+ ## @code{surf (@var{x}, @var{y}, @var{z})} generates a unit sphere.
+ ## The matrices of @address@hidden@address@hidden If @var{n} is
+ ## omitted then a default value of 20 is assumed.
+ ##
+ ## Called with no return arguments, @code{sphere} call 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{peaks}
+ ## @end deftypefn
+
+ function [xx,yy,zz] = sphere (h, n)
+
+ have_h = false;
+ if (nargin > 1 && isscalar (h) && ishandle (h))
+ if (! strcmp (get (h, "type"), "axes"))
+ error ("sphere: expecting first argument to be an axes object");
+ endif
+ if (nargin == 1)
+ n = 20;
+ endif
+ have_h = true;
+ else
+ if (nargin == 1)
+ n = h;
+ else
+ n = 20;
+ endif
+ endif
+
+ theta = linspace (0, 2*pi, n+1);
+ phi = linspace (-pi/2, pi/2, n+1);
+ [theta,phi] = meshgrid (theta, phi);
+
+ x = cos(phi).*cos(theta);
+ y = cos(phi).*sin(theta);
+ z = sin(phi);
+
+ if (nargout > 0)
+ xx = x;
+ yy = y;
+ zz = z;
+ else
+ if (have_h)
+ oldh = gca ();
+ unwind_protect
+ axes (h);
+ surf (x, y, z);
+ unwind_protect_cleanup
+ axes (oldh);
+ end_unwind_protect
+ else
+ surf (x, y, z);
+ endif
+ endif
+
+ endfunction
*** ./scripts/plot/Makefile.in.orig19 2007-11-20 17:05:47.273774974 +0100
--- ./scripts/plot/Makefile.in 2007-11-20 17:06:10.566575474 +0100
***************
*** 123,128 ****
--- 123,129 ----
shading.m \
shg.m \
sombrero.m \
+ sphere.m \
spinmap.m \
stairs.m \
stem.m \
2007-11-20 David Bateman <address@hidden>
* plot/sphere.m: New function
* plot/Makefile.in (SOURCES): Add it to the sources.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Port sphere.m form jhandles to Octave,
David Bateman <=