Main Content

isocaps

等値面 end cap 形状を計算

構文

fvc = isocaps(X,Y,Z,V,isovalue)
fvc = isocaps(V,isovalue)
fvc = isocaps(...,'enclose')
fvc = isocaps(...,'whichplane')
[f,v,c] = isocaps(...)
isocaps(...)

説明

fvc = isocaps(X,Y,Z,V,isovalue) は、等値面値 isovalue で、物体データ V の等値面 end cap 形状を計算します。配列 XYZ は、3 次元物体 V に関する座標を定義します。

struct fvc は、end cap に対する面、頂点、およびカラー データを含んでいて、patch コマンドに直接渡すことができます。

fvc = isocaps(V,isovalue) は、配列 XYZ が、[m,n,p] = size(V) である [X,Y,Z] = meshgrid(1:n,1:m,1:p) として定義されていることを前提としています。

fvc = isocaps(...,'enclose') は、end cap に isovalue で設定された値より大きいデータ値を含ませるか、小さいデータ値を含ませるかを設定します。'enclose' オプションは 'above' (既定の設定) または 'below' のいずれかです。

fvc = isocaps(...,'whichplane') は、end cap を描く平面を設定します。'whichplane' の可能な値は、'all' (既定の設定)、'xmin''xmax''ymin''ymax''zmin'、または 'zmax' です。

[f,v,c] = isocaps(...) は、struct fvc の代わりに 3 つの配列に、end cap に対する面、頂点、およびカラー データを返します。

出力引数を設定しない isocaps(...) は、計算された面、頂点、および色を使用して、パッチを作成します。

すべて折りたたむ

以下の例は、頭蓋骨の MRI スライスを集めたデータセットを使います。切断面上に end cap を描くための isocaps の使い方を示します。

赤い isosurface は頭蓋骨の外形を表し、end cap はその物体の中身を表しています。

end cap データ (p2) から作成される patch は、内挿された面のカラーリングを使っています。このことは、gray カラーマップと光源によって色が決まることを意味しています。等値面パッチ (p1) については、フラットな赤の面の色を使い、光源に影響を受けていますが、カラーマップは使用していません。

load mri
D = squeeze(D);
D(:,1:60,:) = [];
p1 = patch(isosurface(D, 5),'FaceColor','red',...
	'EdgeColor','none');
p2 = patch(isocaps(D, 5),'FaceColor','interp',...
	'EdgeColor','none');
view(3)
axis tight
daspect([1,1,.4])
colormap(gray(100))
camlight left
camlight
lighting gouraud
isonormals(D,p1)

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

拡張機能

バージョン履歴

R2006a より前に導入