
In the above, the surface shading is continuous, i.e., smooth. The following shows a simple surface plot with axes, labels and frame: There are two simple demonstration applications, one using WPF and the other using WinForms. I have also created a simple export method for use by WinForms applications that displays the configuration view. The settings include zoom, Z axis scaling and perspective. The library includes a WPF user control that can be added to a form or a dialog and which allows the user to configure the display settings, such as the frame colour and the label size. The configuration can be read from and written to the registry. The settings are passed to the control as an instance of a class derived from the IConfiguration interface. Performance will of course depend on the nature of the PC and the graphics card. OpenGL is fast as it uses the PC's graphics card. The control shapes and text using Open GL, via the C# OpenTK library. The user can manipulate the view using the keyboard including zoom, rotate and move.A WPF view that allows the user to configure the display.Optional frame around the sides of the display.User selectable projections: 3D, orthographic and bird's eye.A hold feature, whereby only the maximum (or minimum) Z values at each X,Y point are shown.Optional grid connecting the data points.An optional Z bar which displays the colour corresponding to each Z axis value.The user can select the colour, size and orientation of the labels.The display is highly configurable including: Adding the control to an application is very straight forward. It is designed for the real time display of data, i.e., data that is constantly being updated. The control can be used in WPF and WinForms applications.

This article describes a C# control that plots a 2D array of Z values as a surface or a scatter plot.
