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.

3D plot of data ()

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> ...

Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.