| 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 | ![]() |