isocolors

Вычислите изоповерхности и патча

Синтаксис

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