具有大量数据点的TeeChart colorrid性能



我正在用Visual Studio Express [c#]编写一个应用程序,我需要同时实时显示12个colorgrid [128 x 128]。

这是我如何设置我的图表:

        tChart1.Aspect.View3D = false;
        tChart1.Aspect.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed;
        tChart1.Legend.Visible = false;
        tChart1.Axes.Bottom.Title.Text = "R";
        tChart1.Axes.Bottom.SetMinMax(0, 127);
        tChart1.Axes.Bottom.Increment = 20;
        tChart1.Axes.Left.Title.Text = "D";
        tChart1.Axes.Left.SetMinMax(0, 127);

然后我像这样初始化ColorGrid:

        for (int d = 0; d < 128; d++)
        {
            for (int r = 0; r < 128; r++)
            {
                ColorGrid.Add(r, 0, d);
            }
        }

然后,实时地,我所做的就是更新一些for循环中的YValues,它覆盖了整个128 x 128的范围:

        ColorGrid.YValues[index] = value;

for循环之后,我调用:

        ColorGrid.BeginUpdate();
        ColorGrid.EndUpdate();

我目前有12个TChart控件,它们一起显示在一个窗体上。

我还尝试将12个图表组合成一个大图表,通过将12个图表绘制为6 x 2的"子图"图表,但这只产生了很小的性能差异。

是否有办法获得10+fps:

是12个独立的[128 × 128]图,还是一个[128 × 6 × 128 × 2]图??

如果我有什么不清楚的地方,请告诉我:-)

谢谢

JD

改善ColorGrid绘图时间是Steema愿望清单(TF02016286)中已经存在的功能请求。

还要注意,一般来说,随着要绘制的图表的点和元素(网格线,梯度等)的增加,绘制图表需要更多的时间。所以我不确定它是否可以改进到你所要求的程度。

我没有看到在你的例子中实现的一个技巧是隐藏colorrid钢笔。这将略微提高性能:

ColorGrid.Pen.Visible = false;

还要注意,ColorGrid.BeginUpdate()ColorGrid.EndUpdate()被认为分别在清空和重新填充序列之前和之后调用,而不是同时调用和在修改序列值之后调用。

相关内容

  • 没有找到相关文章

最新更新