Documentation

Displaying Complex Three-Dimensional Objects

This example shows how to create and display a complex three dimensional object and control its appearance.

Get Geometry of Object

This example uses a graphics object called the Newell teapot. The vertex, face, and color index data for the teapot are calculated by theteapotDatafunction. Since the teapot is a complex geometric shape, there are a large number of vertices (4608) and faces (3872) returned by the function.

[verts, faces, cindex] = teapotGeometry;

Create Teapot Patch Object

Using the geometry data, draw the teapot using thepatchcommand. Thepatchcommand creates a patch object.

figure p = patch('Faces',faces,'Vertices',verts,'FaceVertexCData',cindex,'FaceColor','interp')

p = Patch with properties: FaceColor: 'interp' FaceAlpha: 1 EdgeColor: [0 0 0] LineStyle: '-' Faces: [3872x4 double] Vertices: [4608x3 double] Show all properties

Use theviewcommand to change the orientation of the object.

view(-151,30)% change the orientationaxisequaloff%轴平等的和无形的

Adjust Transparency

Make the object transparent using theFaceAlphaproperty of the patch object.

p.FaceAlpha = 0.3;% make the object semi-transparent

If theFaceColorproperty is set to 'none', then the object appears as a wire frame diagram.

p.FaceColor ='none';% turn off the colors

改变Colormap

Change the colors for the object using thecolormapfunction.

p.FaceAlpha = 1;% remove the transparencyp.FaceColor ='interp';% set the face colors to be interpolatedp.LineStyle ='none';% remove the linescolormap(copper)% change the colormap

Light the Object

Add a light to make the object appear more realistic.

l = light('Position',[-0.4 0.2 0.9],'Style','infinite')
l = Light with properties: Color: [1 1 1] Style: 'infinite' Position: [-0.4000 0.2000 0.9000] Visible: 'on' Show all properties
lightinggouraud

These properties of the patch object affect the strength of the light and the reflective properties of the object:

  • AmbientStrength- controls the strength of ambient light

  • DiffuseStrength- controls the strength of diffuse light

  • SpecularStrength- controls the strength of reflected light

  • SpecularExponent- controls the harshness of reflected light

  • SpecularColorReflectance- controls how reflected color is calculated.

You can set these properties individually. To set these properties to a predetermined set of values that approximate the appearance of metal, shiny, or dull material, use thematerialcommand.

materialshiny

Adjust the position of the light using itsPositionproperty. The position is inx,y,zcoordinates.

l.Position = [-0.1 0.6 0.8]

l = Light with properties: Color: [1 1 1] Style: 'infinite' Position: [-0.1000 0.6000 0.8000] Visible: 'on' Show all properties
Was this topic helpful?