簡體   English   中英

如何與ILnumerics中的標記物相互作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM