exponenta event banner

изоцвета

Расчет цветов изоповерхности и накладок

Синтаксис

nc = isocolors(X,Y,Z,C,vertices)
nc = isocolors(X,Y,Z,R,G,B,vertices)
nc = isocolors(C,vertices)
nc = isocolors(R,G,B,vertices)
nc = isocolors(...,PatchHandle)
isocolors(...,PatchHandle)

Описание

nc = isocolors(X,Y,Z,C,vertices) вычисляет цвета вершин изоповерхности (объекта-сегмента) (vertices) с использованием значений цвета C. Множества X, Y, Z определить координаты для цветовых данных в C и должны быть монотонными векторами, которые представляют декартову, выровненную по оси сетку (как будто meshgrid). Цвета возвращаются в nc. C должен быть 3-D (цвета индекса).

nc = isocolors(X,Y,Z,R,G,B,vertices) использование R, G, B в виде массивов красного, зеленого и синего цветов (истинные цвета).

nc = isocolors(C,vertices), и nc = isocolors(R,G,B,vertices) принять X, Y, и Z определяются выражением

[X Y Z] = meshgrid(1:n,1:m,1:p) 

где [m n p] = size(C).

nc = isocolors(...,PatchHandle) использует вершины из фрагмента, идентифицированного PatchHandle.

isocolors(...,PatchHandle) устанавливает FaceVertexCData свойства исправления, указанного PatchHandle к вычисленным цветам.

Примеры

свернуть все

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

[x,y,z] = meshgrid(1:20,1:20,1:20);
data = sqrt(x.^2 + y.^2 + z.^2);
cdata = smooth3(rand(size(data)),'box',7);
p = patch(isosurface(x,y,z,data,10));
isonormals(x,y,z,data,p)
isocolors(x,y,z,cdata,p)
p.FaceColor = 'interp';
p.EdgeColor = 'none';
view(150,30)
daspect([1 1 1])
axis tight
camlight
lighting gouraud

Figure contains an axes. The axes contains an object of type patch.

В этом примере отображается изоповерхность, и она окрашивается данными истинного цвета (RGB).

[x,y,z] = meshgrid(1:20,1:20,1:20);
data = sqrt(x.^2 + y.^2 + z.^2);
p = patch(isosurface(x,y,z,data,20));
isonormals(x,y,z,data,p)
[r,g,b] = meshgrid(20:-1:1,1:20,1:20);
isocolors(x,y,z,r/20,g/20,b/20,p)
p.FaceColor = 'interp';
p.EdgeColor = 'none';
view(150,30) 
daspect([1 1 1])
camlight 
lighting gouraud

Figure contains an axes. The axes contains an object of type patch.

В этом примере используется isocolors для вычисления истинных цветовых данных с использованием вершин изоповерхности (объекта-сегмента), но затем возвращает цветовые данные в переменной (c) для изменения значений. Затем он явно устанавливает новые данные FaceVertexCData изо-поверхности (1-c).

[x,y,z] = meshgrid(1:20,1:20,1:20);
data = sqrt(x.^2 + y.^2 + z.^2);
p = patch(isosurface(data,20));
isonormals(data,p)
[r,g,b] = meshgrid(20:-1:1,1:20,1:20);
c = isocolors(r/20,g/20,b/20,p);
p.FaceVertexCData = 1-c;
p.FaceColor = 'interp';
p.EdgeColor = 'none';
view(150,30) 
daspect([1 1 1])
camlight 
lighting gouraud

Figure contains an axes. The axes contains an object of type patch.

Расширенные возможности

Представлен до R2006a