Этот пример показывает, как получить свойства объемной поверхностной диаграммы в 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
Чтобы получить доступ к отдельным свойствам, используйте синтаксис записи через точку object.PropertyName
. Например, возвратите свойство FaceColor
поверхности.
s.FaceColor
ans = 'flat'
Несколько функций доступны, чтобы изменить поверхностные свойства. Например, используйте функцию 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
Чтобы настроить вид вашей поверхности, измените значения свойств с помощью записи через точку.
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
Графические объекты в 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: '' 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: ''