Main Content

Visualización de objetos tridimensionales complejos

Este ejemplo muestra cómo crear y mostrar un objeto tridimensional complejo y controlar su apariencia.

Obtener geometría de objeto

Este ejemplo utiliza un objeto gráfico llamado la tetera Newell. La función calcula los datos de índice de vértice, cara y color de la tetera.teapotData Dado que la tetera es una forma geométrica compleja, hay un gran número de vértices (4608) y caras (3872) devueltas por la función.

[verts, faces, cindex] = teapotGeometry;

Crear objeto de parche de TEAPOT

Utilizando los datos de geometría, dibuje la tetera utilizando el comando.patch El comando crea un objeto de parche.patch

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  

Utilice el comando para cambiar la orientación del objeto.view

view(-151,30)     % change the orientation axis equal off    % make the axes equal and invisible

Ajustar la transparencia

Haga que el objeto sea transparente mediante la propiedad del objeto patch.FaceAlpha

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

Si la propiedad se establece en ' none ', el objeto aparece como un diagrama de marco de alambre.FaceColor

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

Cambiar mapa de colores

Cambie los colores del objeto utilizando la función.colormap

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

Ilumina el objeto

Añade una luz para que el objeto parezca más realista.

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  
lighting gouraud

Estas propiedades del objeto de parche afectan a la intensidad de la luz y a las propiedades reflectantes del objeto:

  • -controla la intensidad de la luz ambientalAmbientStrength

  • -controla la fuerza de la luz difusaDiffuseStrength

  • -controla la intensidad de la luz reflejadaSpecularStrength

  • -controla la aspereza de la luz reflejadaSpecularExponent

  • -controla cómo se calcula el color reflejado.SpecularColorReflectance

Puede establecer estas propiedades individualmente. Para establecer estas propiedades en un conjunto predeterminado de valores que se aproximen al aspecto del material metálico, brillante o opaco, utilice el comando.material

material shiny

Ajuste la posición de la luz utilizando su propiedad.Position La posición está en, coordenadas.xyz

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