gpt4 book ai didi

ILNumerics ILSurface 调整 Z 值

转载 作者:行者123 更新时间:2023-12-01 19:24:30 26 4
gpt4 key购买 nike

有没有一种方法可以以一种可以保留原始值的方式来操纵曲面图的 Z 值范围,这样我就可以使用 GetLimits() 方法创建一个具有最小值和最大值的范围 slider ,然后更新数据数组 Z 值,以便我可以设置新的限制,但来回移动幻灯片以调整最小/最大 Z 值并在我这样做时查看绘图调整?

给定这段代码

            ILArray<float> tempArray = ILMath.tosingle(myDoubleArray);

dataArray.a = tempArray;

var plotCube = ilPanel1.Scene.First<ILPlotCube>();
var surface = plotCube.First<ILFastSurface>();

surface.Update(Z: dataArray, colormap: new ILColormap(ILColormaps.ILNumerics));
ilPanel1.Refresh();

MinValue 和 MaxValue 控件是这样初始化的。

            float maxZ, minZ;
dataArray.GetLimits(out minZ, out maxZ);
var zRange = maxZ - minZ;

MinValue.Maximum = (decimal)maxZ;
MinValue.Minimum = (decimal)minZ;
MinValue.Value = (decimal)minZ;

MaxValue.Maximum = (decimal)maxZ;
MaxValue.Minimum = (decimal)minZ;
MaxValue.Value = (decimal)maxZ;

我希望能够像这样操作数组中的 Z 值

        dataArray[dataArray < (float)MinValue.Value] = (float)MinValue.Value;
dataArray[dataArray > (float)MaxValue.Value] = (float)MaxValue.Value;

var plotCube = ilPanel1.Scene.First<ILPlotCube>();
var surface = plotCube.First<ILFastSurface>();

surface.Update(Z: dataArray, colormap: new ILColormap(ILColormaps.ILNumerics));
ilPanel1.Refresh();

问题是 dataArray 正在被更改为新的最小/最大值。如果您想改回更大的最小值/最大值,如何恢复 dataArray?我只是克隆 dataArray 并用它来改变情节吗?或者 ILArray 是否有跟踪变化并可以恢复数组的功能?

最佳答案

这个问题的解决方案是使用临时数组并克隆原始数组,然后将临时数组归一化并用它更新表面。

        float min = surface.GetRangeMinValue(AxisNames.CAxis) + minOffs;
float max = surface.GetRangeMaxValue(AxisNames.CAxis) + maxOffs;

ILArray<float> tempArray = _dataArray.C;
tempArray[tempArray < min] = min;
tempArray[tempArray > max] = max;

surface.Update(Z: tempArray);

_dataArray 是用原始数据加载一次的静态属性。任何更新都使用上面的代码完成

关于ILNumerics ILSurface 调整 Z 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35466145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com