Отображение комплексных трехмерных объектов

В этом примере показано, как создать и отобразить комплексный трехмерный объект и управлять его внешним видом.

Получение геометрии объекта

Это использование в качестве примера графический объект вызвало заварной чайник Ньюэлла. Вершина, поверхность и данные об индексе цвета для заварного чайника вычисляются teapotData функция. Поскольку заварной чайник является комплексной геометрической фигурой, существует большое количество вершин (4608) и поверхности (3872) возвращено функцией.

[verts, faces, cindex] = teapotGeometry;

Создание заварного чайника объект Patch

Используя данные о геометрии, чертите заварной чайник с помощью 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 - управляет резкостью отраженного света

  • 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