Этот пример показывает, как создать и отобразить комплексный трехмерный объект и управлять его внешним видом.
Это использование в качестве примера графический объект вызвало заварной чайник Ньюэлла. Вершина, поверхность и данные об индексе цвета для заварного чайника вычисляются функцией teapotData
. Поскольку заварной чайник является комплексной геометрической фигурой, существует большое количество вершин (4608) и поверхности (3872) возвращено функцией.
[verts, faces, cindex] = teapotGeometry;
Используя данные о геометрии, чертите заварной чайник с помощью команды patch
. Команда 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
не установлено ни в 'один', то объект появляется как схема проволочного каркаса.
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 -
управляет резкостью отраженного света
Зеркальный цветной коэффициент отражения-
управляет, как отраженный цвет вычисляется.
Можно установить эти свойства индивидуально. Чтобы установить эти свойства на предопределенное множество значений, которые аппроксимируют внешний вид металлического, солнечного, или тусклого материала, используйте команду 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