terrain.m

来自「遗传算法工具包」· M 代码 · 共 31 行

M
31
字号
function map = terrain(m)
%TERRAIN Color map for displaying terrain relief.
%   private function to psoutputwashington.

%   Copyright 2004 The MathWorks, Inc.  
%   $Revision: 1.1 $  $Date: 2004/01/14 15:35:16 $

error(nargchk(0,1,nargin));
if nargin == 0
    m = size(get(gcf,'colormap'),1);
elseif ~isa(m,'double') || any(~isreal(m))...
        || length(m) ~= 1 || any(ceil(m) ~= m)
    error('Input must be real double, 1-by-1, and integer-valued.');
end

% The color map consists of two linear segments in HSV space.
% The lower 2/3 follows a linear trajectory from [0.3 0.3 0.5]
% to [0.1 0.8 0.8].  The upper 1/3 continues on to [0 0 0.95].

p1 = [0.3  0.3  0.5 ];
p2 = [0.1  0.8  0.8 ];
p3 = [0.0  0.0  0.95];

m1 = max(2,ceil((2/3)*m));  % First segment, including both p1 and p2
m2 = max(1,m - m1);         % Upper segment, ending at p3

hsv1 = repmat(p1,[m1 1]) + ((0:m1-1)/(m1-1))' * (p2 - p1);
hsv2 = repmat(p2,[m2 1]) +   ((1:m2)/m2)'     * (p3 - p2);

map = hsv2rgb([hsv1; hsv2]);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?