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

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

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

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

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

figure
surf(X,Y,Z)

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

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

Get Individual Surface Properties

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

s.FaceColor
ans = 
'flat'

Change Commonly Used Surface Properties

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

shading interp    % interpolate the colormap across the surface face

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

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

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

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

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

alpha(0.8)    % set transparency to 0.8

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

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

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

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

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

Получение всей 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'
                   CreateFcn: ''
                   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: ''
Была ли эта тема полезной?