Изопрописные буквы добавляет контекст к визуализациям

Что такое изопрописные буквы?

Изопрописные буквы - это плоскости, которые подогнаны к пределам изоповерхности, чтобы обеспечить визуальный контекст для изоповерхность. Изопрописные буквы показывают вид в поперечном сечении внутренней поверхности изоповерхности, для которой изопрописная буква обеспечивает торцевую прописную букву.

Следующие два рисунка иллюстрируют использование изопрописных букв. Первый - изоповерхность без изопрописных букв.

Второй рисунок показывает эффект добавления изопрописных букв к той же изоповерхности.

Другие приложения Изопрописная буква

Некоторые дополнительные применения изопрописных букв показаны в следующих примерах:

Определение изопрописных букв

Изопрописные буквы, как изоповерхности, создаются как patch графические объекты. Используйте isocaps команда, чтобы сгенерировать данные, которые будут переданы в patch. Для примера:

patch(isocaps(voldata,isoval),...
   'FaceColor','interp',...
...'EdgeColor','none')

создает изопрописные буквы для скалярных объемных данных voldata при значении isoval. Вы должны создать изоповерхность с помощью тех же объемных данных и изозначение, чтобы убедиться, что ребра изопрописных букв соответствуют изоповерхности.

Установка закрашенная фигура- FaceColor свойство к interp Результаты в раскраске, который сопоставляет значения данных, охватываемые записями изопрописной буквы, с записями палитры. Можно также задать другие свойства закрашенной фигуры, чтобы контролировать эффекты подсветки и раскраски на изопрописные буквы.

Добавление изопрописных букв к изоповерхность

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

1. Подготовка данных

Этот пример использует трехмерный массив случайных (rand) данные для определения объемных данных. Затем данные сглаживаются (smooth3).

data = rand(12,12,12);
data = smooth3(data,'box',5);

2. Создайте изоповерхности и Set

Использовать isosurface и patch создать изоповерхность и задать свойства окрашивания и подсветки. Уменьшите AmbientStrength, SpecularStrength, и DiffuseStrength отраженного света для компенсации яркости двух источников света, используемых для обеспечения более равномерной подсветки.

Пересчитайте вершинные нормали изоповерхности, чтобы получить более плавную подсветку (isonormals).

isoval = .5;
h = patch(isosurface(data,isoval),...
   'FaceColor','blue',...
   'EdgeColor','none',...
   'AmbientStrength',.2,...
   'SpecularStrength',.7,...
   'DiffuseStrength',.4);
isonormals(data,h)

3. Создайте Изопрописные буквы и установите свойства

Определите isocaps использование тех же данных и изозначение, что и изоповерхность. Задайте интерполированную раскраску и выберите палитру, которая обеспечивает лучшие контрастные цвета с синей изоповерхность, чем в палитре по умолчанию (colormap).

patch(isocaps(data,isoval),...
   'FaceColor','interp',...
   'EdgeColor','none')
colormap hsv

4. Определите вид

Установите соотношение сторон данных равным [1,1,1] так, чтобы отображение было в правильных пропорциях (daspect). Удалите пустое пространство внутри осей и установите вид равным 3-D (axis tight, view).

daspect([1,1,1])
axis tight
view(3)

5. Добавление подсветки

Чтобы добавить довольно равномерную подсветку, но все же воспользуйтесь способностью источников света делать видимые тонкие изменения формы, в этом примере используются два источника света, один слева и один справа от камеры (camlight). Используйте подсветку Гуро, чтобы получить самое плавное изменение цвета (lighting).

camlight right
camlight left