彩票走势图

高性能图表控件LightningChart有关datagridview数据的3d图形问题解答

翻译|使用教程|编辑:杨鹏连|2021-04-19 14:57:21.110|阅读 132 次

概述:本文主要介绍了高性能图表控件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(),出值)&&amp; _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@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP