Изодно является плоскостями, которые адаптированы к пределам изоповерхности, чтобы обеспечить визуальный контекст для изоповерхности. Изодно показывает перекрестный вид в сечении внутренней части изоповерхности, для которой изодно обеспечивает заглушку.
Следующие два изображения иллюстрируют использование изодна. Первой является изоповерхность без изодна.
Второе изображение показывает эффект добавляющего изодна к той же изоповерхности.
Некоторые дополнительные приложения изодна показывают в следующих примерах:
Изодно, как изоповерхности, создается как patch
графические объекты. Используйте isocaps
команда, чтобы сгенерировать данные, чтобы передать patch
. Например:
patch(isocaps(voldata,isoval),... 'FaceColor','interp',... ...'EdgeColor','none')
создает изодно для скалярных данных об объеме voldata
в значении isoval
. Необходимо создать изоповерхность с помощью тех же данных об объеме и изозначения, чтобы гарантировать, что ребра изодна соответствуют изоповерхности.
Установка закрашенной фигуры FaceColor
свойство к interp
результаты в окраске, которая сопоставляет значения данных, заполненные изодном к записям палитры. Можно также установить другие свойства исправления управлять эффектами подсветки и окраски на изодне.
Этот пример иллюстрирует, как установить окраску и подсветку характеристик при работе с изодном. Существует пять основных шагов:
Этот пример использует трехмерный массив случайных (rand
) данные, чтобы задать данные об объеме. Данные затем сглаживаются (smooth3
).
data = rand(12,12,12); data = smooth3(data,'box',5);
Используйте 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)
Задайте isocaps
использование тех же данных и изозначения как изоповерхность. Задайте интерполированную окраску и выберите палитру, которая предоставляет лучшим контрастирующим цветам синюю изоповерхность, чем те в палитре по умолчанию (colormap
).
patch(isocaps(data,isoval),... 'FaceColor','interp',... 'EdgeColor','none') colormap hsv
Установите соотношение сторон данных на [1,1,1]
так, чтобы отображение было в правильных пропорциях (daspect
). Устраните пробел в осях и установите представление на 3-D (axis
tight
Представление
).
daspect([1,1,1]) axis tight view(3)
Чтобы добавить довольно универсальную подсветку, но все еще использовать в своих интересах способность источников света сделать видимые тонкие изменения формы, этот пример использует два световых сигналов, один налево и один справа от камеры (camlight
). Используйте подсветку Гура, чтобы произвести самое сглаженное изменение цвета (lighting
).
camlight right camlight left