В этом примере показано, как получить свойства графика поверхности в 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
определяет цвета для вершин поверхности. The FaceColor
свойство указывает, как цвета граней поверхности определяются из вершинных цветов.
s.CData = hypot(X,Y); % set color data
s.FaceColor = 'interp'; % interpolate to get face colors
AlphaData
определяет прозрачность для каждой вершины поверхности. The 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: ''