Плоскость среза (которая не обязательно должна быть плоской) - это поверхность, которая принимает раскраску на основе значений данных объема в области, где расположен фрагмент. Плоскости среза полезны для исследования наборов данных тома, чтобы обнаружить, где существуют интересные области, которые затем можно визуализировать с другими типами графиков (см. slice пример). Плоскости среза также полезны для добавления визуального контекста к границе объема при использовании других методов построения графиков (см. coneplot и «Отображение потоков с использованием векторных данных» для примеров).
Используйте slice для создания плоскостей среза. В этом примере выполняется разрезание тома, созданного flow.
Создайте данные тома с помощью команды:
[x,y,z,v] = flow;
Определите диапазон объема, найдя минимум и максимум данных координат.
xmin = min(x(:)); ymin = min(y(:)); zmin = min(z(:)); xmax = max(x(:)); ymax = max(y(:)); zmax = max(z(:));
Чтобы создать плоскость среза, которая не лежит в плоскости осей, сначала определите поверхность и поверните ее в нужную ориентацию. В этом примере используется поверхность с теми же координатами x и y, что и объем.
hslice = surf(linspace(xmin,xmax,100),... linspace(ymin,ymax,100),... zeros(100));
Поверните поверхность на -45 градусов вокруг оси X и сохраните поверхность XData, YData, и ZData для определения плоскости среза; затем удалите поверхность.
rotate(hslice,[-1,0,0],-45) xd = get(hslice,'XData'); yd = get(hslice,'YData'); zd = get(hslice,'ZData');
delete(hslice)
Нарисуйте повернутую плоскость среза, установив FaceColor кому interp чтобы он был окрашен картой цветов фигуры, и установите EdgeColor кому none. Увеличить DiffuseStrength кому .8 чтобы сделать эту плоскость более яркой после добавления источника света.
colormap(turbo) h = slice(x,y,z,v,xd,yd,zd); h.FaceColor = 'interp'; h.EdgeColor = 'none'; h.DiffuseStrength = 0.8;

Набор hold кому on и добавьте еще три ортогональные плоскости среза в xmax, ymax, и zmin для предоставления контекста для первой плоскости, которая разрезает объем под углом.
hold on hx = slice(x,y,z,v,xmax,[],[]); hx.FaceColor = 'interp'; hx.EdgeColor = 'none'; hy = slice(x,y,z,v,[],ymax,[]); hy.FaceColor = 'interp'; hy.EdgeColor = 'none'; hz = slice(x,y,z,v,[],[],zmin); hz.FaceColor = 'interp'; hz.EdgeColor = 'none';
Чтобы отобразить объем в правильных пропорциях, установите соотношение сторон данных в [1,1,1] (daspect). Отрегулируйте ось так, чтобы она плотно прилегала к объему (axis). Ориентация осей может быть выбрана первоначально с помощью rotate3d чтобы определить лучшее view.
Увеличение масштаба сцены обеспечивает больший обзор объема (camzoom). Выбор типа проекции perspective дает прямоугольному твердому телу больше натуральных пропорций, чем ортогональная проекция по умолчанию (camproj).
daspect([1,1,1]) axis tight view(-38.5,16) camzoom(1.4) camproj perspective
Добавление источника света в сцену делает границы между четырьмя плоскостями среза более очевидными, поскольку каждая плоскость образует свой угол с источником света (lightangle). При выборе карты цветов только с 24 цветами (по умолчанию - 64) создаются видимые градации, которые помогают определить изменение объема.
lightangle(-45,45) colormap(turbo(24))

Изменение сопоставления цветов показывает, как данные сопоставляются с цветом.
Текущая карта цветов определяет цвет плоскостей среза. Это позволяет изменить раскраску плоскости среза:
Изменение карты цветов
Изменение соответствия значения данных цвету
Предположим, например, что вы заинтересованы в значениях данных только в диапазоне от -5 до 2.5 и хотите использовать карту цветов, которая сопоставляет более низкие значения красным, а более высокие значения - блюзу (т. е. противоположность умолчанию). turbo colormap).
Развернуть карту цветов с помощью colormap и flipud:
colormap(flipud(turbo(24)))

Скорректируйте пределы цвета, чтобы подчеркнуть любой конкретный интересующий диапазон данных. Установите пределы цвета в диапазоне от -5 до 2.4832 для отображения любого значения ниже значения -5 (исходные данные варьировались от -11.5417 до 2.4832) в один и тот же цвет. Сведения о цветовом сопоставлении см. в разделе caxis функция.
caxis([-5,2.4832])

Добавьте цветовую панель, чтобы предоставить ключ для сопоставления данных с цветом.
colorbar('southoutside')