MATLAB中fill3函数的自定义色彩映射?

时间:2013-03-30 05:02:44

标签: matlab colors fill

基本上我正在尝试在三角形元素网格上对二维有限元解进行可视化。所以我将三角形三角形并使用fill3函数绘制它。现在我正在做

% K is the number of mesh elements

for i=1:K
    % x,y,z are 3x1 vectors of the x,y,and z coordinates of the triangle vertices respectively
    fill3(x,y,z,gradient(z))
end

这个问题是对于每个个别三角形,使用渐变(z)色图表示当前三角形上z的最小值对应于z的最小值和最大值对应于最大值。

我想要的是,所有三角形的色彩图都有一定的一致性,就像使用'surf'功能一样。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以通过fill3行中三角形的全局最大值进行标准化。因此,对于每个三角形,计算梯度(z)并找到它的最大值和最小值。收集所有这些值,找到全局最大值和最小值。将这些值表示为gmaxgmin,然后我们可以根据这些值对整个数据集进行规范化。例如

 fill3(x,y,z, (gradient(z)-gmin)/(gmax-gmin) )

这应该采用所有梯度值并将它们映射到所有三角形的区间[0,1]。然后,三角形之间的色彩图应该是一致的。