1
目前我的軟件在MSCharts中使用圖表對象的HitTest()
方法,但是隨着我擴展到我的圖表上越來越多的數據點以及其他因素,這可能會導致巨大的性能下降。HitTest的替代方案()
我想知道是否有任何替代方案,你知道提供相同的功能(獲得X座標在圖表上的光標位置),但沒有性能打擊,因爲命中測試似乎是一種非常蠻力的方式獲得我的答案。
我的圖表從類System.Windows.Forms.DataVisualization.Charting.Chart
編輯爲清楚起見發佈:我要找到我的圖上的線的位置,以將其用於其他計算。
HitTest()函數只能用於鼠標事件處理代碼。這在人類的時間運行,燃燒幾十毫秒不是問題。如果花費比這更長的時間,那麼你只是將太多的數據填入圖表中,遠遠超過它所能顯示的細節。因此請更好地過濾數據。 –
圖表需要大量數據,HitTest用於確定光標旁邊顯示的圖表信息,以便用戶可以在圖表上運行鼠標,並在鼠標位置有效查看準確的數據。雖然解決辦法可能是取一組平均數據點而不是使用這麼多,但是精度的損失並不理想。 –
鼠標只有像素精度。所以你不需要比屏幕上的像素更多的數據點。還要考慮對於您的預期功能意味着什麼,用戶永遠不會看到圖中重疊的兩個點的數據。最後但並非最不重要的是,您可以輕鬆確保數據點已排序,從而允許二分搜索定位數據點。 O(log n)算法非常快。 –