Connecting Equal Values with Isosurfaces

Isosurfaces in Fluid Flow Data

Create isosurfaces with the isosurface and patch commands.

This example creates isosurfaces in a volume generated by flow. Generate the volume data with the command:

[x,y,z,v] = flow;

To select the isovalue, determine the range of values in the volume data.

min(v(:))
ans =
   -11.5417
max(v(:))
ans =
   2.4832

Through exploration, you can select isovalues that reveal useful information about the data. Once selected, use the isovalue to create the isosurface:

  • Use isosurface to generate data that you can pass directly to patch.

  • Recalculate the surface normals from the gradient of the volume data to produce better lighting characteristics (isonormals).

  • Set the patch FaceColor to red and the EdgeColor to none to produce a smoothly lit surface.

  • Adjust the view and add lighting (daspect, view, camlight, lighting).

    hpatch = patch(isosurface(x,y,z,v,0));
    isonormals(x,y,z,v,hpatch)
    hpatch.FaceColor = 'red';
    hpatch.EdgeColor = 'none';
    daspect([1,4,4])
    view([-65,20])
    axis tight
    camlight left; 
    lighting gouraud
    

Was this topic helpful?