[英]Ilnumerics: how to get ILNumerics controls in Windows Form Tools?
[英]How to interact with markers in ILnumerics?
我使用用於.Net的ILNumerics數學庫創建了一個簡單的折線圖。 我想與繪制的數據進行交互。 應該可以選擇繪制數據的一個子集,並對其執行不同的數學運算。 我想使用標記進行選擇,但無法獲取正確的位置值。 我想我必須以某種方式改變觀點...也許有人可以幫助我嗎?
這是代碼的簡化版本:
private void ilPanel1_Load(object sender, EventArgs e)
{
var scene = new ILScene();
//create 2D data
ILArray<float> line1 = new float[,] {
{0.0f, 1.0f, 2.0f },
{0.0f, 2.0f , 3.0f} };
var linePlot1 = new ILLinePlot(line1.T,
lineColor: Color.Blue,
lineWidth: 3,
markerStyle: MarkerStyle.Dot);
var plot = scene.Add(new ILPlotCube());
plot.Add(linePlot1);
linePlot1.Marker.MouseClick += Marker_MouseClick;
ilPanel1.Scene = scene;
}
一旦我單擊其中一個標記,就會調用Marker_MouseClick事件。
void Marker_MouseClick(object sender, ILMouseEventArgs e)
{
ILGroup group = e.Target.Parent;
ILMarker marker = group.First<ILMarker>();
var posx = e.LocationF.X;
var posY = e.LocationF.Y;
}
但是這些位置並不涉及軸的縮放比例。 有一種簡單的方法可以將LocationF值轉換為我的軸的縮放比例嗎? 還是有另一種方法可以在觸發事件后獲取標記的x和y值?
蒂姆
鼠標事件參數為您提供LocationF屬性。 它反映了鼠標在視口的(2D)坐標系中的位置。 ILNumerics中的視口由ILCamera建立。 因此,我們將鼠標置於父相機節點的坐標系中。
為了將鼠標位置轉換為繪圖立方體的坐標系,必須累積從攝影機到繪圖立方體節點的轉換矩陣。 生成的轉換矩陣會將任何鼠標位置轉換為繪圖立方體坐標系。
SO上有一個類似的問題: 如何從ILNumerics表面圖上的鼠標單擊位置中找到表面的3D坐標? / 17681163#17681163三維坐標-A-表面從 - - 點擊位置的最鼠標的-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.