В этом примере показано, как создать и отобразить комплексный трехмерный объект и контролировать его внешний вид.
Этот пример использует графический объект, называемый чайником Ньюэлла. Данные о вершине, грани и цветовом индексе для чайника вычисляются teapotData
функция. Поскольку чайник является сложной геометрической формой, существует большое количество вершин (4608) и граней (3872), возвращаемых функцией.
[verts, faces, cindex] = teapotGeometry;
Используя данные геометрии, нарисуйте чайник с помощью patch
команда. The patch
команда создает объект закрашенной фигуры.
figure p = patch('Faces',faces,'Vertices',verts,'FaceVertexCData',cindex,'FaceColor','interp')
p = Patch with properties: FaceColor: 'interp' FaceAlpha: 1 EdgeColor: [0 0 0] LineStyle: '-' Faces: [3872x4 double] Vertices: [4608x3 double] Show all properties
Используйте view
команда для изменения ориентации объекта.
view(-151,30) % change the orientation axis equal off % make the axes equal and invisible
Сделайте объект прозрачным, используя FaceAlpha
свойство объекта закрашенной фигуры.
p.FaceAlpha = 0.3; % make the object semi-transparent
Если на FaceColor
для свойства задано значение 'none', затем объект появляется как схема системы координат проводов.
p.FaceColor = 'none'; % turn off the colors
Измените цвета для объекта используя colormap
функция.
p.FaceAlpha = 1; % remove the transparency p.FaceColor = 'interp'; % set the face colors to be interpolated p.LineStyle = 'none'; % remove the lines colormap(copper) % change the colormap
Добавьте свет, чтобы объект казался более реалистичным.
l = light('Position',[-0.4 0.2 0.9],'Style','infinite')
l = Light with properties: Color: [1 1 1] Style: 'infinite' Position: [-0.4000 0.2000 0.9000] Visible: on Show all properties
lighting gouraud
Эти свойства объекта закрашенной фигуры влияют на силу света и отражающие свойства объекта:
AmbientStrength
- контролирует силу окружающего света
DiffuseStrength
- контролирует силу рассеянного света
SpecularStrength
- контролирует силу отраженного света
SpecularExponent
- управляет жесткостью отраженного света
SpecularColorReflectance
- управляет вычислением отраженного цвета.
Эти свойства можно задать по отдельности. Чтобы задать эти свойства для предопределённого множества значений, которые аппроксимируют внешний вид металла, блестящего или тусклого материала, используйте material
команда.
material shiny
Отрегулируйте положение света, используя его Position
свойство. Положение находится в координатах x, y, z.
l.Position = [-0.1 0.6 0.8]
l = Light with properties: Color: [1 1 1] Style: 'infinite' Position: [-0.1000 0.6000 0.8000] Visible: on Show all properties