C#输出直线/曲线/绘图的最快方式/技术?

C#输出直线/曲线/绘图的最快方式/技术?,c#,graphics,C#,Graphics,我需要一种在windows应用程序(WPF或WinForms)中输出多个数据范围的绘图的有效方法。我的同事说,他尝试了standart.net的DrawLine,但速度很慢。本质上 我知道有像OpenGL/DirectX这样的直接图形输出技术,但这些技术适合快速显示纹理(由预定义图片组成的2D/3D对象)。但我不知道它们是否擅长原语——我相信,比如说,OpenGL甚至没有一种“LineTo”。我理解为什么primitves现在有点无用(甚至游戏中的UI都是通过复杂的图像完成的),所以这很可能是对

我需要一种在windows应用程序(WPF或WinForms)中输出多个数据范围的绘图的有效方法。我的同事说,他尝试了standart.net的DrawLine,但速度很慢。本质上

我知道有像OpenGL/DirectX这样的直接图形输出技术,但这些技术适合快速显示纹理(由预定义图片组成的2D/3D对象)。但我不知道它们是否擅长原语——我相信,比如说,OpenGL甚至没有一种“LineTo”。我理解为什么primitves现在有点无用(甚至游戏中的UI都是通过复杂的图像完成的),所以这很可能是对技术的“非标准”使用


所以我有点不知所措

您可以将direct2d与winforms/wpf一起使用。Direct2d具有所有方便的几何图形绘制方法,同时具有相当高的性能。像sharpdx/slimdx这样的库允许您使用C#编写所有directx代码。但我认为您仅限于vista和更高版本的windows。

我在WPF应用程序中使用动态数据显示进行科学绘图-

  • 它跑得很快
  • 它提供了异步方法
  • 它有很好的教程

  • 线在3D绘图中并不存在。GDI+可能适合您,尽管您可能需要双缓冲。只想说明在OpenGL中绘制基本体没有问题。您只需处理线顶点,就可以很好地处理诸如SFML之类的库。也就是说,处理顶点显然比处理简单的“LineTo”函数要多一些工作。System.Drawing/Direct2D(SlimDX/SharpDX)是一些很好的候选者。