Main Content

reducepatch

パッチ面の数を減らす

構文

reducepatch(p,r)
nfv = reducepatch(p,r)
nfv = reducepatch(fv,r)
nfv = reducepatch(p)
nfv = reducepatch(fv)
reducepatch(...,'fast')
reducepatch(...,'verbose')
nfv = reducepatch(f,v,r)
[nf,nv] = reducepatch(...)

説明

reducepatch(p,r) は、ハンドル p で識別されるパッチ面の数を、元のオブジェクトの全体像を保持しながら減らします。MATLAB® は、減少ファクター r を、その値に依存して次の 2 とおりの解釈を行います。

  • r が 1 より小さい場合、r は元の面数に乗算すると解釈されます。たとえば、r が 0.2 の場合、面数は元のパッチの 20% になります。

  • r が 1 以上の場合、r は減少した後の面数を示します。たとえば、r を 400 とすると、面数は 400 面になるまで減少されます。

nfv = reducepatch(p,r) は、面と頂点が減少したセットを返しますが、パッチ pFacesVertices プロパティは設定しません。struct nfv は、減少処理した後の面と頂点を含んでいます。

nfv = reducepatch(fv,r) は、struct fv 内の面と頂点を減少させます。

nfv = reducepatch(p)nfv = reducepatch(fv) は、0.5 の減少値を使用します。

reducepatch(...,'fast') は、頂点が固有で、共有された頂点を計算しないと仮定しています。

reducepatch(...,'verbose') は、計算の進行状況に応じて、コマンド ウィンドウにその状況を表すメッセージを表示します。

nfv = reducepatch(f,v,r) は、f の面と v の頂点に減少操作を行います。

[nf,nv] = reducepatch(...) は、配列 nfnv に面と頂点を返します。

すべて折りたたむ

この例は、面の数を元の値の 15% に削減した場合の影響を示しています。

figure
[x,y,z,v] = flow;
p = patch(isosurface(x,y,z,v,-3));
p.FaceColor = 'w';
p.EdgeColor = 'b';
daspect([1,1,1])
view(3)

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

面の数を減らします。

reducepatch(p,0.15)

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

ヒント

パッチが頂点を共有していない場合、MATLAB は面数を減少させる前に、共有した頂点を計算します。パッチの面が三角形でない場合、MATLAB は減少させる前に面を三角形にします。返される面は、常に三角形として定義されています。

出力される三角形の数は、減少ファクター引数 (r) で設定した値と厳密には一致しません。特に、元のパッチの面が三角形でない場合は、このような事柄が生じます。

拡張機能

バージョン履歴

R2006a より前に導入