isosurface

Extrai a superfície onde os dados de um volume 3-D valem um certo valor, como faces e vértices.

Categoria: Graphics > 2-D and 3-D Plots

Sintaxe

fv = isosurface(X, Y, Z, V, isovalue)

Retorna uma estrutura com faces e vertices da superfície V = isovalue na grade (X, Y, Z).

fv = isosurface(V, isovalue)

Usa a grade 1:n em cada direção.

[f, v] = isosurface(___)

Retorna faces e vértices como dois arrays.

Descrição

A função é o análogo 3-D de uma curva de nível. Ela percorre as células do volume e cria triângulos onde os dados cruzam o isovalor. As posições dos vértices são interpoladas linearmente entre os pontos da grade.

Desenhe o resultado com patch(fv, 'FaceColor', 'r') e adicione view(3) e camlight para um visual 3-D iluminado.

Argumentos de entrada

X, Y, Z
Arrays de coordenadas, como os de meshgrid.
V
Array 3-D de dados escalares.
isovalue
O nível em que cortar os dados.

Argumentos de saída

fv
Estrutura com vertices (n-por-3) e faces (m-por-3 triângulos que indexam os vértices), pronta para patch.
f, v
As faces e os vértices como arrays separados.

Exemplo

Esfera a partir de um campo de distância

[x, y, z] = meshgrid(-1:0.5:1);
v = x.^2 + y.^2 + z.^2;
fv = isosurface(x, y, z, v, 0.5);
size(fv.faces)
size(fv.vertices)
max(fv.vertices)
Saída
ans = 1×2

    96     3
ans = 1×2

    74     3
ans = 1×3

    0.6667    0.6667    0.6667

Veja também

isocaps isonormals isocolors patch reducepatch contour3