Изменение свойств поверхности

В этом примере показано, как получить свойства объемной поверхностной диаграммы в MATLAB® и изменить значения свойств, чтобы настроить ваш график.

Объекты подложки

Существует несколько способов создать объект подложки в MATLAB. Один путь состоит в том, чтобы использовать surf.

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

figure
surf(X,Y,Z)

Figure contains an axes. The axes contains an object of type surface.

Как все графические объекты, поверхности имеют свойства, которые можно просмотреть и изменить. Эти свойства имеют значения по умолчанию. Отображение объекта подложки, s, показывает обычно используемые поверхностные свойства, такие как EdgeColor, LineStyle'FaceColor' , и FaceLighting.

s = surf(X,Y,Z)

Figure contains an axes. The axes contains an object of type surface.

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

Get Individual Surface Properties

Чтобы получить доступ к отдельным свойствам, используйте синтаксис записи через точку object.PropertyName. Например, возвратите FaceColor свойство поверхности.

s.FaceColor
ans = 
'flat'

Change Commonly Used Surface Properties

Несколько функций доступны, чтобы изменить поверхностные свойства. Например, используйте shading функционируйте, чтобы управлять штриховкой вашей поверхности.

shading interp    % interpolate the colormap across the surface face

Figure contains an axes. The axes contains an object of type surface.

Используйте lighting функция, чтобы настроить характеристики подсветки вашей поверхности. Для lighting чтобы сделать, чтобы любой влиял, необходимо осветить поверхность путем создания светового объекта.

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

Figure contains an axes. The axes contains an object of type surface.

Чтобы изменить свойство коэффициента отражения вашей поверхности, используйте material функция.

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

Figure contains an axes. The axes contains an object of type surface.

Чтобы установить прозрачность для всех объектов в текущей системе координат, используйте alpha функция. Эта функция устанавливает прозрачность на любое значение между 1 и 0, где 1 полностью непрозрачное среднее значение и 0 абсолютно прозрачных средних значений.

alpha(0.8)    % set transparency to 0.8

Figure contains an axes. The axes contains an object of type surface.

Изменение другой Surface Properties

Чтобы настроить вид вашей поверхности, измените значения свойств с помощью записи через точку.

CData задает цвета для вершин поверхности. FaceColor свойство указывает, как цвета поверхностных поверхностей определяются из цветов вершины.

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

Figure contains an axes. The axes contains an object of type surface.

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

AlphaData задает прозрачность для каждой вершины поверхности. FaceAlpha свойство указывает, как прозрачность поверхностных поверхностей определяется из прозрачности вершины.

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

Figure contains an axes. The axes contains an object of type surface.

Получение всей Surface Properties

Графические объекты в MATLAB имеют много свойств. Чтобы видеть все свойства поверхности, используйте 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
                 ContextMenu: [0x0 GraphicsPlaceholder]
                   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'
                    UserData: []
               VertexNormals: [50x50x3 double]
           VertexNormalsMode: 'auto'
                     Visible: on
                       XData: [50x50 double]
                   XDataMode: 'manual'
                 XDataSource: ''
                       YData: [50x50 double]
                   YDataMode: 'manual'
                 YDataSource: ''
                       ZData: [50x50 double]
                 ZDataSource: ''