2014-02-06 62 views
1

是否可以反轉ILNumerics中的顏色映射?我現在正在使用Jet彩色貼圖,並且想要將其反轉,所以藍色位於頂部,底部爲紅色,我如何在不反轉所有點的z值的情況下執行此操作?ILNumerics中反轉顏色映射

這是我的代碼:

//p are the points im plotting 
    ILSurface surface = new ILSurface(p, colormap: Colormaps.Jet); 

將會產生這樣的:

Surface Plot

回答

2

你可從表面當前顏色表(或從ILColormap實例),只是顛倒位置的顏色映射內的各個顏色映射項目。在我的例子的colordata的第一行被覆蓋與其鏡面視圖:

private void ilPanel1_Load(object sender, EventArgs e) { 
    ILArray<float> A = ILSpecialData.sincf(40, 50); 
    ilPanel1.Scene.Add(new ILPlotCube(twoDMode: false) { 
     new ILSurface(A) { new ILColorbar() } 
    }); 

    // fetch surface 
    var surface = ilPanel1.Scene.First<ILSurface>(); 
    // fetch current colormap data 
    ILArray<float> cmdata = surface.Colormap.Data; 
    // invert their positions 
    cmdata[":;0"] = cmdata["end:-1:0;:"]; 
    // make new colormap and assign 
    surface.Colormap = new ILColormap(cmdata); 
    // configure after all modifications 
    surface.Configure(); 
} 

的cmdata事後被用來創建一個新的顏色映射,比分配到表面上。

請參閱相關的文檔在這裏:http://ilnumerics.net/managing-colormaps.html

+0

完美正是我一直在尋找謝謝! :d – bolt19