3D Data Visualization
You can represent some kinds of data as a three-dimensional graph. For example, certain mathematical functions can be visualized this way. So can some sets of physical measurements (e.g., height information from map data). Figure 1-21 shows an example.

Figure 17-31. 3D plot of data (Figure F-2)
To display data in this form, you need to write code that will
generate a mesh from the data. Let's look at an example that creates the
MeshGeometry3D shown in Figure 1-21 from a
two-dimensional array of floating-point numbers. To be able to display a
3D model, we will of course need a Viewport3D. Example 17-26 shows the XAML for a window
containing a Viewport3D with a camera
and some light sources.
Example 17-26. XAML to host 3D model
<Window x:Class="Generate3DMesh.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Generate3DMesh" Height="400" Width="400"> <Grid x:Name="mainGrid"> <Viewport3D x:Name="vp"> <Viewport3D.Camera> <PerspectiveCamera Position="5,4,6" LookDirection="−5,−3.75,−6" UpDirection="0,1,0" FieldOfView="10" /> </Viewport3D.Camera> <ModelVisual3D> <ModelVisual3D.Content> <Model3DGroup> <AmbientLight Color="#222" /> <DirectionalLight Color="#aaa" Direction="−1,−1,−1" /> <DirectionalLight Color="#aaa" Direction="1,−1,−1" /> </Model3DGroup> </ModelVisual3D.Content> <ModelVisual3D ...