MATLAB Function Reference | ![]() ![]() |
表示
reducepatch(p,r) nfv = reducepatch(p,r) nfv = reducepatch(fv,r) 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)
は、面と頂点の減少したものを戻しますが、パッチ p
の Faces
と Vertices
プロパティを設定していません。構造体 nfv
は、減少処理した後の面と頂点を含んでいます。
nfv = reducepatch(fv,r)
は、面数を r
の値に応じて処理した面数と頂点を減少させ、構造体 fv
に戻します。
nfv = reducepatch(p)
、または、nfv = reducepatch(fv)
は、0.5
の減少値を使います。
nfv = reducepatch(f,v,r)
は、f
の中の面と v
の中の頂点に減少操作を行います。
[nf,nv] = reducepatch(...)
は、配列nf
と nv
に、面と頂点を戻します。
注意
パッチが、頂点を共有していない場合、MATLAB は、面数を減少させる前に、共有した頂点を計算します。パッチの面が三角形でない場合、MATLAB は減少させる前に面を三角形にします。戻される面は、常に三角形で定義されています。
出力される三角形の数は、減少ファクタ引数(r
)で設定した値と厳密には一致しません。特に、オリジナルのパッチの面が三角形でない場合は、このような事柄が生じます。
例題
つぎの例題は、面数をオリジナルの15% まで減少させた影響を示したものです。
[x,y,z,v] = flow; p = patch(isosurface(x,y,z,v,-3)); set(p,'facecolor','w','EdgeColor','b'); daspect([1,1,1]) view(3) figure; h = axes; p2 = copyobj(p,h); reducepatch(p2,0.15) daspect([1,1,1]) view(3)
参考
isosurface
, isocaps
, isonormals
, smooth3
, subvolume
, reducevolume
![]() | rectangle | reducevolume | ![]() |