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

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

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

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

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

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

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

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

Изодно, как изоповерхности, создается как 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 создать изоповерхность и установить окраску и подсветку свойств. Уменьшайте AmbientStrengthSpecularStrength , и 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