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

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

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

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

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

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

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

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

Изопрописные буквы, как изоповерхности, создаются как графические объекты 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. Создание Isosurface and Set Properties

Используйте 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 and Set Properties

Задайте 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