| Contents > Tutorials > Chart Tutorials | Index |
Visualising Response Surfaces
The response surface is generally used with computed data to show a mathematical function of two variables. It may be combined with other 3D charts (typically the cloud chart) to show a theoretical fit in addition to the raw data plotted in 3 dimensions.
A Simple Mesh Surface
The data is an array of arrays of nodes in the surface, which must be strictly rectangular. Each inner array is drawn parallel to the X-axis, working from front to back.

mesh = new int[][]{new int[]{8,7,6,5,4,3},new int[]{12,11,10,9,8,7},new int[]{16,15,14,13,12,11}};
sp.SetMargins(48,12,24,0);
sp.Heading = "Simple Mesh Surface";
sp.ResponsePlotStyle = ResponsePlotStyles.WallShading|ResponsePlotStyles.Markers;
sp.SetMarkers(MarkerStyle.Node);
sp.DrawResponsePlot(mesh);
Mesh with Given X and Y Co-ordinates
This has the same arrays for the mesh, but the nodes are placed explicitly in both X and Y directions, so the effect is to stretch the surface.

mesh = new int[][]{new int[]{8,7,6,5,4,3},new int[]{12,11,10,9,8,7},new int[]{16,15,14,13,12,11}};
xvalues = new int[] {8,10,16,20,26,48};
yvalues = new int[] {8,12,20};
sp.SetMargins(48,12,24,0);
sp.Heading = "Stretched Mesh Surface";
sp.ResponsePlotStyle = ResponsePlotStyles.WallShading|ResponsePlotStyles.Markers;
sp.SetMarkers(MarkerStyle.Ball);
sp.DrawResponsePlot(mesh,xvalues,yvalues);
Tiling Two Surfaces
Tiled surfaces are most effectively drawn with semi-transparent fill styles, to allow the axes and any data to show through.

mesh = new int[][]{new int[]{8,7,6,5,4,3},new int[]{12,11,10,9,8,7},new int[]{16,15,14,13,12,11}};
sp.SetMargins(48,12,24,0);
sp.Heading = "Tiled Surface with Contours";
sp.ResponsePlotStyle = ResponsePlotStyles.WallShading|ResponsePlotStyles.GridLines|
ResponsePlotStyles.TiledSurface|ResponsePlotStyles.Contours;
sp.SetFillStyles(FillStyle.Opacity42);
sp.SetContourStyle(Color.Navy,LineStyle.Dash,1.5);
sp.DrawResponsePlot(mesh);
This example shows two intersecting planes, each drawn with 30% opacity.
Altitude Shading
If the mesh genuinely represents altitude it can be shaded to represent the range of the Z-axis.

sp.SetMargins(48,12,24,0); sp.Heading = "Altitude-shaded Terrain"; sp.ResponsePlotStyle = ResponsePlotStyles.WallShading|ResponsePlotStyles.TiledSurface| ResponsePlotStyles.AltitudeShading; sp.XAxisStyle = XAxisStyles.PlainAxis; sp.YAxisStyle = YAxisStyles.PlainAxis; sp.SetFillStyles(FillStyle.Opacity66); sp.SetColors(Color.ForestGreen); sp.DrawResponsePlot(terrainData);
This works very well with this style of generated fractal landscape.
Summary
The response plot can be a very good way to visualise a computed surface in 3 dimensions.
