Home > freetb4matlab > plot > isocolors.m

isocolors

PURPOSE ^

%

SYNOPSIS ^

function varargout = isocolors(varargin)

DESCRIPTION ^

% -*- texinfo -*-
% @deftypefn  {Function File} {[@var{cd}] =} isocolors (@var{c}, @var{v})
% @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{x}, @var{y}, @var{z}, @var{c}, @var{v})
% @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{x}, @var{y}, @var{z}, @var{r}, @var{g}, @var{b}, @var{v})
% @deftypefnx {Function File} {[@var{cd}] =} isocolors (@var{r}, @var{g}, @var{b}, @var{v})
% @deftypefnx {Function File} {[@var{cd}] =} isocolors (@dots{}, @var{p})
% @deftypefnx {Function File} isocolors (@dots{})
%
% If called with one output argument and the first input argument
% @var{c} is a three--dimensional array that contains color values and
% the second input argument @var{v} keeps the vertices of a geometry
% then return a matrix @var{cd} with color data information for the
% geometry at computed points 
% @command{[x, y, z] = meshgrid (1:l, 1:m, 1:n)}.  The output argument
% @var{cd} can be taken to manually set FaceVertexCData of a patch.
%
% If called with further input arguments @var{x}, @var{y} and @var{z}
% which are three--dimensional arrays of the same size than @var{c}
% then the color data is taken at those given points.  Instead of the
% color data @var{c} this function can also be called with RGB values
% @var{r}, @var{g}, @var{b}.  If input argumnets @var{x}, @var{y},
% @var{z} are not given then again @command{meshgrid} computed values
% are taken.
%
% Optionally, the patch handle @var{p} can be given as the last input
% argument to all variations of function calls instead of the vertices
% data @var{v}.  Finally, if no output argument is given then directly
% change the colors of a patch that is given by the patch handle
% @var{p}.
%
% For example,
% @example
% function [] = isofinish (p)
%   set (gca, 'DataAspectRatioMode', 'manual', ...
%        'DataAspectRatio', [1 1 1]);
%   set (p, 'FaceColor', 'interp');
%   %% set (p, 'FaceLighting', 'flat');
%   %% light ('Position', [1 1 5]); %% Available with JHandles
% 
% 
% N = 15;    %% Increase number of vertices in each direction
% iso = .4;  %% Change isovalue to .1 to display a sphere
% lin = linspace (0, 2, N);
% [x, y, z] = meshgrid (lin, lin, lin);
% c = abs ((x-.5).^2 + (y-.5).^2 + (z-.5).^2); 
% figure ; %% Open another figure window
%
% subplot (2, 2, 1); view (-38, 20); 
% [f, v] = isosurface (x, y, z, c, iso);
% p = patch ('Faces', f, 'Vertices', v, 'EdgeColor', 'none');
% cdat = rand (size (c));       %% Compute random patch color data
% isocolors (x, y, z, cdat, p); %% Directly set colors of patch
% isofinish (p);                %% Call user function isofinish
%
% subplot (2, 2, 2); view (-38, 20); 
% p = patch ('Faces', f, 'Vertices', v, 'EdgeColor', 'none');
% [r, g, b] = meshgrid (lin, 2-lin, 2-lin);
% cdat = isocolors (x, y, z, c, v); %% Compute color data vertices
% set (p, 'FaceVertexCData', cdat); %% Set color data manually
% isofinish (p);
%
% subplot (2, 2, 3); view (-38, 20); 
% p = patch ('Faces', f, 'Vertices', v, 'EdgeColor', 'none');
% cdat = isocolors (r, g, b, c, p); %% Compute color data patch
% set (p, 'FaceVertexCData', cdat); %% Set color data manually
% isofinish (p);
%
% subplot (2, 2, 4); view (-38, 20); 
% p = patch ('Faces', f, 'Vertices', v, 'EdgeColor', 'none');
% r = g = b = repmat ([1:N] / N, [N, 1, N]); %% Black to white
% cdat = isocolors (x, y, z, r, g, b, v);
% set (p, 'FaceVertexCData', cdat);
% isofinish (p);
% @end example
%
% @seealso{isosurface, isonormals, isocaps}
%
% @end deftypefn

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Sat 16-May-2009 00:04:49 by m2html © 2003