Francis,
I had a look at Dynamic Data Display library and I took inspiration from samples to achieve this

1. Describe the graphics in XAML
<Grid>
<d3:ChartPlotter Name="plotter">
<!--to display the isolines-->
<d3:IsolineGraph Name="isolineGraph"/>
<!--to dynamically display the isocurve just under mouse cursor-->
<d3:IsolineTrackingGraph Name="trackingGraph"/>
<!--to show x and y coordinates-->
<d3:CursorCoordinateGraph/>
</d3:ChartPlotter>
</Grid>
2. Provide some data in C#
public MainWindow()
{
InitializeComponent();
const int width=100;
const int height=100;
double[,] data = new double[width, height];
for (int row = 0; row < height; row++)
for (int column = 0; column < width; column++)
data[column, row] = Math.Cos(2.0*Math.PI*column /(width-1) )*
Math.Cos(2.0 * Math.PI * row / (height - 1));
Point[,] gridData = new Point[width, height];
for (int row = 0; row < height; row++)
for (int column = 0; column < width; column++)
gridData[column, row] = new Point(row, column);
// Create data source
WarpedDataSource2D<double> dataSource = new WarpedDataSource2D<double>(data, gridData);
isolineGraph.DataSource = dataSource;
trackingGraph.DataSource = dataSource;
Rect visible = new Rect(dataSource.Grid.GetLowerBound(0), dataSource.Grid.GetLowerBound(1),
dataSource.Grid.GetUpperBound(0), dataSource.Grid.GetUpperBound(1));
plotter.Viewport.Visible = visible;
}
The code I provide calculates a function with values depending on x and y.
I put the computed (cosinus) values in the data
variable
The gridData
variable only holds the {x,y} points
Here is the full working project : http://1drv.ms/1P2TGmO
Regards