Main Content

Cambiar propiedades de superficie

Este ejemplo muestra cómo obtener propiedades de una gráfica de superficie en MATLAB® y cambiar los valores de propiedad para personalizar el trazado.

Objetos de superficie

Existen varias formas de crear un objeto de superficie en MATLAB. Una forma es usar.surf

[X,Y,Z] = peaks(50);  figure surf(X,Y,Z)

Al igual que todos los objetos gráficos, las superficies tienen propiedades que se pueden ver y modificar. Estas propiedades tienen valores predeterminados. La visualización del objeto de superficie, muestra las propiedades de superficie más utilizadas, como,, y.sEdgeColorLineStyleFaceColorFaceLighting

s = surf(X,Y,Z)

s =    Surface with properties:         EdgeColor: [0 0 0]        LineStyle: '-'        FaceColor: 'flat'     FaceLighting: 'flat'        FaceAlpha: 1            XData: [50x50 double]            YData: [50x50 double]            ZData: [50x50 double]            CData: [50x50 double]    Show all properties  

Obtener propiedades de superficie individuales

Para acceder a propiedades individuales, utilice la sintaxis de notación de puntos.object.PropertyName Por ejemplo, devuelva la propiedad de la superficie.FaceColor

s.FaceColor
ans =  'flat' 

Cambiar propiedades de superficie usadas habitualmente

Hay varias funciones disponibles para cambiar las propiedades de la superficie. Por ejemplo, utilice la función para controlar el sombreado de la superficie.shading

shading interp    % interpolate the colormap across the surface face

Utilice la función para ajustar las características de iluminación de la superficie.lighting Para tener cualquier efecto, debe iluminar su superficie creando un objeto de luz.lighting

light               % create a light lighting gouraud    % preferred method for lighting curved surfaces

Para cambiar la propiedad reflectancia de la superficie, utilice la función.material

material dull    % set material to be dull, no specular highlights

Para establecer la transparencia de todos los objetos de los ejes actuales, utilice la función.alpha Esta función establece la transparencia en cualquier valor entre 1 y 0, donde 1 significa totalmente opaco y 0 significa completamente transparente.

alpha(0.8)    % set transparency to 0.8

Cambiar otras propiedades de superficie

Para personalizar el aspecto de la superficie, cambie los valores de propiedad mediante la notación de puntos.

define los colores de los vértices de la superficie.CData La propiedad indica cómo se determinan los colores de las caras de superficie a partir de los colores de vértice.FaceColor

s.CData = hypot(X,Y);      % set color data

s.FaceColor = 'interp';    % interpolate to get face colors

define la transparencia para cada vértice de la superficie.AlphaData La propiedad indica cómo se determina la transparencia de las caras de superficie a partir de la transparencia de vértices.FaceAlpha

s.AlphaData = gradient(Z);    % set vertex transparencies s.FaceAlpha = 'interp';       % interpolate to get face transparencies

Obtener todas las propiedades de superficie

Los objetos gráficos de MATLAB tienen muchas propiedades. Para ver todas las propiedades de una superficie, utilice el comando.get

get(s)
          AlignVertexCenters: 'off'                    AlphaData: [50x50 double]             AlphaDataMapping: 'scaled'              AmbientStrength: 0.3000                   Annotation: [1x1 matlab.graphics.eventdata.Annotation]             BackFaceLighting: 'reverselit'                 BeingDeleted: 'off'                   BusyAction: 'queue'                ButtonDownFcn: ''                        CData: [50x50 double]                 CDataMapping: 'scaled'                    CDataMode: 'manual'                  CDataSource: ''                     Children: [0x0 GraphicsPlaceholder]                     Clipping: 'on'                    CreateFcn: ''              DataTipTemplate: [1x1 matlab.graphics.datatip.DataTipTemplate]                    DeleteFcn: ''              DiffuseStrength: 0.8000                  DisplayName: ''                    EdgeAlpha: 1                    EdgeColor: 'none'                 EdgeLighting: 'none'                    FaceAlpha: 'interp'                    FaceColor: 'interp'                 FaceLighting: 'gouraud'                  FaceNormals: [49x49x3 double]              FaceNormalsMode: 'auto'             HandleVisibility: 'on'                      HitTest: 'on'                Interruptible: 'on'                    LineStyle: '-'                    LineWidth: 0.5000                       Marker: 'none'              MarkerEdgeColor: 'auto'              MarkerFaceColor: 'none'                   MarkerSize: 6                    MeshStyle: 'both'                       Parent: [1x1 Axes]                PickableParts: 'visible'                     Selected: 'off'           SelectionHighlight: 'on'     SpecularColorReflectance: 1             SpecularExponent: 10             SpecularStrength: 0                          Tag: ''                         Type: 'surface'                UIContextMenu: [0x0 GraphicsPlaceholder]                     UserData: []                VertexNormals: [50x50x3 double]            VertexNormalsMode: 'auto'                      Visible: 'on'                        XData: [50x50 double]                    XDataMode: 'manual'                  XDataSource: ''                        YData: [50x50 double]                    YDataMode: 'manual'                  YDataSource: ''                        ZData: [50x50 double]                  ZDataSource: ''