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) efaces(m-por-3 triângulos que indexam os vértices), pronta parapatch. 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