Mercurial > hg > octave-nkf
view scripts/plot/shading.m @ 16993:78f57b14535c
Overhaul ez* family of plot functions.
* scripts/plot/ezcontour.m, scripts/plot/ezcontourf.m, scripts/plot/ezmesh.m,
scripts/plot/ezmeshc.m, scripts/plot/ezpolar.m, scripts/plot/ezsurfc.m:
Redo docstring. Match function output names to docstring.
* scripts/plot/ezplot.m: Add %!demo block with sinc function.
Redo docstring. Match function output names to docstring.
scripts/plot/ezplot3.m: Add %!demo block showing 'animate' option.
Redo docstring. Match function output names to docstring.
* scripts/plot/ezsurf.m: Add %!demo block showing 'circ' argument.
Redo docstring. Match function output names to docstring.
* scripts/plot/private/__ezplot__.m:
Implement 'circ' option for ezsurf, ezmesh.
Implement 'animate' option for ezplot3.
Implement new algorithm for finding valid axis setting for mesh, surf, contour
plots based on function gradient.
Eliminate complex Z values along with singularities because these are not
plottable by mesh, surf.
Implement Matlab-compatible 2-pass approach to finding valid domain for plot.
Use 500 points for point-style plot functions ezplot, ezplot3, ezpolar rather
than previous 60 for a smoother plot.
Use better regexprep() calls to format "pretty print" title string.
Relax input checking and allow 3rd parametric function to be a function of 1
variable only.
Clean up code and use Octave coding conventions.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 17 Jul 2013 10:09:44 -0700 |
parents | 5d3a684236b0 |
children | bade805dc0af |
line wrap: on
line source
## Copyright (C) 2006-2012 Kai Habel ## ## 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} {} shading (@var{type}) ## @deftypefnx {Function File} {} shading (@var{ax}, @dots{}) ## Set the shading of surface or patch graphic objects. Valid arguments ## for @var{type} are ## ## @table @asis ## @item "flat" ## Single colored patches with invisible edges. ## ## @item "faceted" ## Single colored patches with visible edges. ## ## @item "interp" ## Color between patch vertices are interpolated and the patch edges are ## invisible. ## @end table ## ## If @var{ax} is given the shading is applied to axis @var{ax} instead ## of the current axis. ## @end deftypefn ## Author: Kai Habel <kai.habel@gmx.de> function shading (varargin) [ax, varargin] = __plt_get_axis_arg__ ("shading", varargin{:}); if (nargin != 1 && nargin != 2) print_usage (); endif mode = varargin{1}; h1 = findobj (ax, "type", "patch"); h2 = findobj (ax, "type", "surface"); obj = [h1(:); h2(:)]; for n = 1:numel (obj) h = obj(n); if (strcmpi (mode, "flat")) set (h, "facecolor", "flat"); set (h, "edgecolor", "none"); elseif (strcmpi (mode, "interp")) set (h, "facecolor", "interp"); set (h, "edgecolor", "none"); elseif (strcmpi (mode, "faceted")) set (h, "facecolor", "flat"); set (h, "edgecolor", [0 0 0]); else error ("shading: unknown argument"); endif endfor endfunction %!demo %! clf; %! colormap ('default'); %! sombrero (); %! shading faceted; %! title ('shading ''faceted'''); %!demo %! clf; %! colormap ('default'); %! sombrero (); %! shading flat; %! title ('shading ''flat'''); %!demo %! clf; %! colormap ('default'); %! sombrero (); %! shading interp; %! title ('shading ''interp'''); %!demo %! clf; %! colormap ('default'); %! pcolor (peaks ()); %! shading faceted; %! title ('shading ''faceted'''); %!demo %! clf; %! colormap ('default'); %! pcolor (peaks ()); %! shading flat; %! title ('shading ''flat'''); %!demo %! clf; %! colormap ('default'); %! pcolor (peaks ()); %! shading interp; %! title ('shading ''interp''');