作者CBET ( )
看板MATLAB
标题Re: [问题] Mesh着色
时间Tue Mar 19 21:01:42 2013
依照 A, B 在资料最大最小值中的比例来设定 colormap
- - - -
% 绘图资料
[X, Y] = meshgrid(-8:0.3:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(Z);
% --------------- %
% 设定 colormap %
% --------------- %
% 参数
valueA = 0.5;
valueB = 0.1;
colorLow = [1, 0, 0];
% 小於 B 的颜色
colorInter = [0, 1, 0];
% 介於 A, B 的颜色
colorHigh = [0, 0, 1];
% 大於 A 的颜色
mapSize = 256;
valueMax = max(Z(:));
valueMin = min(Z(:));
indexA = floor((valueA - valueMin) / (valueMax - valueMin) * mapSize);
indexB = ceil((valueB - valueMin) / (valueMax - valueMin) * mapSize);
% color map matrix
cmap = zeros(mapSize, 3);
cmap(1 : (indexB-1), :) = repmat(colorLow, indexB-1, 1);
cmap(indexB : (indexA-1), :) = repmat(colorInter, indexA - indexB, 1);
cmap(indexA : end, :) = repmat(colorHigh, mapSize - indexA + 1, 1);
colormap(cmap)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.227.7
※ 编辑: CBET 来自: 118.169.227.7 (03/19 21:02)
1F:推 ken780713:成功了!!太感谢了...!! 03/19 21:56