Bryan Greenway
Bryan Greenway

Reputation: 733

WPF fast 2d plotting...what to use?

I've got an application where I am processing images from a camera at around 20Hz. Each image is segmented into a matrix of regions, let's say 100 x 50 (for example). Each region is processed, resulting in a single floating point metric. I'm trying to create simple 2d plot for each region's data as it is created. So, on the screen would be a matrix layout of 500 (in this worse case example) plots/charts.

I'm currently processing the images without issue using managedCUDA and writing some CUDA kernels to take care of that. What I'm faced with now is trying to create a way to logically view all this data has it's coming in. Things I've considered:

  1. Building an "image" on the gpu with dimensions matching the target display control. This image would be segmented into the appropriate number of regions and a rudimentary chart would be drawn, pixel by pixel.
  2. Learn Direct3D or OpenGL and code the algorithms necessary to draw the charts
  3. Use the native WPF capabilities to draw the charts myself.
  4. Use a commercial or open-source charting tool

Option 1 seems crazy to me (but I had a gpu-centric friend suggest it).

Option 2 seems like I'd have to learn all the unnessary 3D overhead of D3D or OpenGL just to draw 2D plots.

Option 3 and 4 probably have the most appeal to me, but I'm worried about performance.

So just looking for advice before I charge off in one of these directions.

Upvotes: 1

Views: 400

Answers (1)

Andrew Stephens
Andrew Stephens

Reputation: 10193

I thoroughly recommend SciChart if you have the money. We develop scientific software that need to process large amounts of data being received from external devices, and have found SciChart to be excellent (features and performance). And no I'm not affiliated to them in any way!

Like all charting components it takes a while to get your head around the many features, but it's worth it. If you download their trial it includes a load of samples, including demos of real-time performance.

Upvotes: 2

Related Questions