我需要编写一个数字示波器类型的应用程序。那里有很多很棒的静态图形控件,但我需要能够绘制 16 条轨迹的图形,每秒处理 4000 个样本。
有人知道.NET 的高速图形控制吗?我什至会使用 MFC,因为它可以封装到 .NET 控件中。
谢谢您的帮助!
ZedGraph 怎么样?他们在这里特别提到了实时应用程序:
http://zedgraph.org/wiki/index.php?title=Display_Dynamic_or_Real-Time_Data
他们声称每秒至少有 20 个样本。
在每秒 4000 个样本的情况下,我认为您不会想要实时绘制所有点,因为您将在 0.25 秒内完成整个屏幕...
DirectX曾经有 .NET 绑定(不确定当前版本)。它包括对高性能 2D 和 3D 图形的支持。如果 Windows 上的任何东西都能满足您的要求,那就是 DirectX。
我会推荐 .NET 的 National Instruments 解决方案。National Instruments 在数据采集和仪器控制方面一直处于领先地位。他们有一个用于在 .NET 中绘制/绘图的库,但它是商业的。
我推荐Universal Real-Time Software Oscilloscope GUI DLL Library。它只是一个 DLL,但具有高性能。查看示例应用程序。
你可以看看QCRTGraph控件。您还可以查看这个CodeGuru 项目。
不过,老实说,根据您的要求,您最好自己进行 C++ 实现。每个样本只有 0.25 毫秒,锁定和更新任何第三方控件的缓冲区对于您来说太昂贵了。
您可能会查看Visual Numerics。
图形渲染(小部件上的点和线)相当简单——你可以用原始的 Win32 a la Petzold 做到这一点。
你可能想看看 Steema Teechart ( http://www.steema.com/teechart/net )。我必须补充一点,我没有任何高速处理的实践经验。