我正在使用 ILNumerics 数学库来创建一些 2D 绘图。为了显示数据,我使用 ILPlotCube 类。我想为 MouseDoubleClick 事件关闭 EventHandler 的默认行为,因为我想实现我自己的。那可能吗?
这里有一些更多的上下文:
用于 MouseDoubleClick 事件的 ILPlotCube 的默认事件处理程序将视图重置为默认值。通常这工作得很好,但是对于非常小的 x 和 y 值似乎存在问题。当我添加一个 y 值非常小的 linePlot 时,绘图的限制会自动设置为 YMax=0.525 和 YMin=-0.525。不幸的是,这不是我想要的。因此,我在添加 linePlot 后自己设置了值,并且情节看起来完全符合我的意愿。太好了……但是:如果我双击场景,它会再次使用默认 (0.525) 值。面团!这就是为什么我想关闭或覆盖这种行为。
有任何想法吗?
private void ilPanel1_Load(object sender, EventArgs e)
{
var scene = new ILScene();
//data with very small "y-values"
ILArray<float> line1 = new float[,] {
{0.0f, 1.0f, 2.0f },
{2.042166e-08f, 2.070141e-08f , 2.042166e-08f} };
var linePlot1 = new ILLinePlot(line1.T,
lineColor: Color.Blue,
lineWidth: 3,
markerStyle: MarkerStyle.Dot);
//Create Plot Cube
var plotCube = new ILPlotCube();
plotCube.Add(linePlot1);
//plotCube.Plots.Limits.YMax is now 0.525
//plotCube.Plots.Limits.YMin is now -0.525
//manually set the value
float maxY = 0.0f;
using (ILScope.Enter())
{
var aPos = linePlot1.Line.Positions.Storage["1;:"];
maxY = ILMath.max(aPos).FirstOrDefault();
}
plotCube.Plots.Limits.YMax = maxY;
plotCube.Plots.Limits.YMin = 0.0f;
var plot = scene.Add(plotCube);
ilPanel1.Scene = scene;
}
谢谢,
蒂姆