ILNumerics Math Library を使用して 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;
}
ありがとう、
ティム