2017-03-07 29 views
0

コマンドPlot3dを使用してScilabで4面をプロットする必要がありますが、実際の値に比例して頂点に色を割り当てる方法を見つけることができません。ScilabのMatlab "Patch"

Matlabのpatchコマンドでは、実数で指定された値に比例して頂点に色を割り当てることができます(たとえば、3.6の値を持つ頂点は、 3.2の値)。

scilabでは、plot3Dは整数値のみを管理できるようです。

Iは、次のコードを試みた:

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

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() 

は多少色具合が異なっ

Continuous colormap

を反映したより連続的なカラーマップにつながります