我需要使用命令Plot3d在Scilab中绘制四边形面,但我无法找到在顶点处指定颜色的方法,与实际值成比例。
在Matlab的patch命令中,我可以在顶点指定一个颜色,与实数给出的值成比例(例如,值为3.6的顶点将具有与具有值的顶点不同的颜色3.2)。
在scilab中,似乎plot3D只能管理整数值。
我尝试了以下代码:
xf = [0, 1; 1 ,2; 1, 2; 0, 1 ];
yf = [1, 1;1, 2;1, 1;1, 1 ];
zf = [0, 0 ; 0, 0; 5,5 ;5, 5 ];
colors = [1 1;2 2 ;3.5 3;4.5 4 ];
plot3d(xf,yf,list(zf,colors) ,[0,0,0,flag,3] )
但颜色相同,即使矩阵颜色中指定的值略有不同。
任何人都知道如何解决这个问题?
由于
答案 0 :(得分:0)
给出的colors
参数用作索引(因此为整数)来查找色彩映射中的颜色。这就是为什么它们是相同的。
在您的示例中,您可以缩放color
列表并设置包含更多值的大型色彩映射表。例如
//Assuming default flags
flags=[2,8,4]
xf = [0, 1; 1 ,2; 1, 2; 0, 1 ];
yf = [1, 1;1, 2;1, 1;1, 1 ];
zf = [0, 0 ; 0, 0; 5,5 ;5, 5 ];
colors = [1 1;2 2 ;3.5 3;4.5 4 ];
// Scale colors
max_value = max(colors)
nr_of_colors = 128
scaled_colors = colors / max_value * nr_of_colors
plot3d(xf,yf,list(zf,scaled_colors) ,[0,0,0,flag,3] )
// Set colormap
fig = gcf()
fig.color_map = hotcolormap(nr_of_colors)
// To show the current colormap
getcolor()
会产生更连续的色彩图,它会反映略微不同的色彩