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

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

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

Это использование в качестве примера графический объект вызвало заварной чайник Ньюэлла. Вершина, поверхность и данные об индексе цвета для заварного чайника вычисляются функцией 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 - управляет резкостью отраженного света

  • Зеркальный цветной коэффициент отражения- управляет, как отраженный цвет вычисляется.

Можно установить эти свойства индивидуально. Чтобы установить эти свойства на предопределенное множество значений, которые аппроксимируют внешний вид металлического, солнечного, или тусклого материала, используйте команду 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