翻譯|使用教程|編輯:楊鵬連|2021-04-19 14:57:21.110|閱讀 220 次
概述:本文主要介紹了高性能圖表控件LightningChart 來自datagridview數據的3d圖形問題解答。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
LightningChart.NET完全由GPU加速,并且性能經過優化,可用于實時顯示海量數據-超過10億個數據點。LightningChart包括廣泛的2D,高級3D,Polar,Smith,3D餅/甜甜圈,地理地圖和GIS圖表以及適用于科學,工程,醫學,航空,貿易,能源和其他領域的體位功能。
LightningChart.NET重新加入在線訂購,SignalTools,12個月,WPF版本原價4105元,現價只需3499元,現在搶購立享優惠!立即購買>>
點擊下載LightningChart.NET最新試用版 LightningChart JS最新試用版
問:用72列和11行(必須具有這種格式)的點云制作3D圖形,形成24條曲線,即前3列形成一條曲線,然后的3列形成另一條曲線,依此類推。不幸的是,我只能繪制一條曲線,而沒有顯示其他23條曲線,您能幫我解決這個問題嗎?
回復:如果要有24條不同的曲線,則需要在后面的代碼中創建24個單獨的PointLineSeries3D對象,將每個對象添加到圖表的PointLineSeries3D集合中。這是一個小示例,其中這些曲線以及它們CellValueChanged-事件顯示了當您具有所描述的DatagridView(72列11行)時,如何確定其中單元格值屬于哪個PointLineSeries3D。
_chart = new LightningChartUltimate(); _chart.BeginUpdate(); _chart.Parent = splitContainer1.Panel2; _chart.Dock = DockStyle.Fill; _chart.ActiveView = ActiveView.View3D; _chart.View3D.LegendBox.Visible = false; dataGridView1.Rows.Add(11); 隨機rnd =新的Random(); 對于(int i = 0; i <24; i ++) { PointLineSeries3D pls =新的PointLineSeries3D(_chart.View3D,Axis3DBinding.Primary,Axis3DBinding.Primary,Axis3DBinding.Primary); pls.LineStyle.Color = Color.FromArgb(255,255-i * 10,i * 10,10); pls.LineStyle.Width = 0.6f; pls.PointsVisible = false; SeriesPoint3D [] pnt =新的SeriesPoint3D [11]; 對于(int j = 0; j <11; j ++) { pnt [j] .X = 5 + j * 9; pnt [j] .Y = rnd.Next(5,96); pnt [j] .Z = 1 + i * 4; dataGridView1.Rows [j] .Cells [i * 3] .Value = pnt [j] .X; dataGridView1.Rows [j] .Cells [i * 3 +1] .Value = pnt [j] .Y; dataGridView1.Rows [j] .Cells [i * 3 + 2] .Value = pnt [j] .Z; } pls.Points = pnt; _chart.View3D.PointLineSeries3D.Add(pls); } _chart.EndUpdate(); 私有void dataGridView1_CellValueChanged(對象發送者,DataGridViewCellEventArgs e) { 如果(_chart!= null) { 雙重價值 if(double.TryParse(dataGridView1.Rows [e.RowIndex] .Cells [e.ColumnIndex] .Value.ToString(),出值)&& _chart.View3D.PointLineSeries3D.Count == 24) { 如果(e.ColumnIndex%3 == 0) _chart.View3D.PointLineSeries3D [(int)Math.Floor(e.ColumnIndex / 3.0)]。Points [e.RowIndex] .X =值; 否則(e.ColumnIndex%3 == 1) _chart.View3D.PointLineSeries3D [(int)Math.Floor(e.ColumnIndex / 3.0)]。Points [e.RowIndex] .Y =值; 否則(e.ColumnIndex%3 == 2) _chart.View3D.PointLineSeries3D [(int)Math.Floor(e.ColumnIndex / 3.0)]。Points [e.RowIndex] .Z =值; _chart.View3D.PointLineSeries3D [(int)Math.Floor(e.ColumnIndex / 3.0)]。InvalidateData(); } } }如果數據值是在DataGridView中輸入的,而不是在后面的代碼中輸入的,并且尚未生成任何數據點,則必須在事件內部創建這些點。的邏輯
。viewtopic.php?f = 15&t = 2291
或者,可以在后面的代碼中創建數據點,每個每個數據點值設置為零,在這種情況下,上面顯示的事件就足夠了。
問:該州使用的代碼允許我將數據粘貼到具有上述相同格式(72列和11行)的數據網格視圖中,但在存儲點的行上卻有一個錯誤,System.IndexOutOfRangeException:'索引超出矩陣邊界”。
我用下面的代碼粘貼:
私有子DataGridView1_KeyDown(ByVal發送者作為System.Object,ByVal e作為System.Windows.Forms.KeyEventArgs)處理DataGridView1.KeyDown 如果e.Control AndAlso e.KeyCode = Keys.V然后 嘗試 對于每行作為Clipboard.GetText.Split(vbNewLine)中的字符串 Dim item()As String = line.Trim.Split(vbTab) 如果item.Length = Me.DataGridView1.ColumnCount然后 Me.DataGridView1.Rows.Add(項目) 萬一 下一個 異常捕獲 MessageBox.Show(例如Message,My.Application.Info.Title,MessageBoxButtons.OK,MessageBoxIcon.Error) 結束嘗試 萬一 結束子回復:IndexOutOfRangeException表示數組/矩陣大小不匹配。換句話說,數據或對象被插入到不存在的索引表中。數量的大小,例如,在您的DataGridView中是否有足夠的列/行,然后再向其中添加數據,甚至您的代碼似乎可以正確處理列數。
如果該有任何疑問,請以獲取更多信息。
如果您對圖表控件意見,可以在慧都網免費下載最新試用版,加入圖表控件QQ信息交流群:740060302
想要購買LightningChart正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: