ILNumerics中的反转色彩映射

时间:2014-02-06 14:35:45

标签: c# color-mapping ilnumerics

是否可以在ILNumerics中反转色彩映射?我现在正在使用Jet彩色地图,并希望将其反转,使蓝色位于顶部,红色位于底部,如何在不反转所有点的z值的情况下执行此操作?

这是我的代码:

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

产生这个:

Surface Plot

1 个答案:

答案 0 :(得分: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