我的情况: 我目前正在从事一个项目,该项目绘制来自几台工业机器的大量数据。该项目是一个 Winforms/C# 项目。目前,我正在使用“System.Drawing”命名空间提供的 Graphics 对象中的 DrawLine 方法。当引导超过 500 多个点的图形时,滞后非常明显,甚至导致绘制方法超时。明确地说,我对开发自己的绘图程序感兴趣,不想使用另一个预先存在的程序。我的观察: 在浏览互联网时,我可以看到如下图所示。我的假设是,即使在下图中绘制了五六个点,在实际数据点之间也必须绘制数百个“中间”点(以获得每个数据点之间的平滑曲线)。像这样的图形在调整大小时非常平滑。我的问题:我怎样才能获得这些现代(超级用户友好)图形程序所享受的性能?
3 回答
倚天杖
TA贡献1828条经验 获得超3个赞
“酷”图很可能是使用贝塞尔曲线绘制(填充)的,这些曲线由少量所谓的控制点定义。System.Drawing 之类的 API 已针对此类图形基元进行了优化和高效处理,它们只需要很少的函数调用。
如果您的曲线不平滑,也许您可以在不丢失细节的情况下丢弃点,但这取决于您的数据。
最后的方法可能是编写您自己的渲染算法,该算法利用您的特定数据并通过直接像素访问而不是执行图形调用来生成图像。然后将图像 blit 到显示器上。
此选项需要良好的图形渲染知识。
- 3 回答
- 0 关注
- 209 浏览
添加回答
举报
0/150
提交
取消