В этом примере показано, как получить свойства объемной поверхностной диаграммы в 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 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: ''