MATLAB Function Reference |
化簡(reduce)土地(patch)表面(faces)的個數。
Syntax
reducepatch(p,r) nfv = reducepatch(p,r) nfv = reducepatch(fv,r) reducepatch(...,'fast') reducepatch(...,'verbose') nfv = reducepatch(f,v,r) [nf,nv] = reducepatch(...)
Description
當我們企圖保存原來物件的全部形狀,
reducepatch(p,r)
化簡被控制(handle)p
所確認出來(identify)的土地(patch),其表面的個數。MATLAB靠著下列的值以兩中方式的其中一種翻譯化簡係數(reduction factor)r
r
比一還小,則r
被翻譯成原來表面個數的分數(fraction)。舉例來說,如果你明確說明r
是0.2,那麼表面(face)的個數會被化簡到只有原來土地(patch)個數的20%。r
和1一樣或是比1大,那麼r
是表面(face)的目標(target)數。舉例來說,如果你明確說明r
為400,那麼表面(face)會被化簡直到那邊剩下四百個表面(face)。nfv = reducepatch(p,r)
傳回化簡的表面(face)和頂點(vertices)集(set),但不會設定土地p
的Faces
和Vertices
屬性。結構(struct)nfv
在化簡之後包含了表面和頂點。
nfv = reducepatch(fv,r)
執行在結構fv
中表面和頂點的化簡。
nfv = reducepatch(p)
or nfv = reducepatch(fv)
使用的0.5
的化簡值(reduction value)。
reducepatch(...,'fast')
假設定點是唯一的(unique),同時不會計算共有頂點(shared vertices)的情況。
reducepatch(...,'verbose')
當計算在正進行中,列印出進行中的訊息到指令視窗。
nfv = reducepatch(f,v,r)
執行f
中平面和v
中頂點的化簡。
[nf,nv] = reducepatch(...)
傳回表面和頂點的陣列nf
和nv
。
Remarks
如果土地包(patch)含了不共同擁有(nonshared)的頂點,MATLAB會在化簡表面(face)個數前計算共同擁有(shared)的頂點。如果土地的表面不是三角形的(triangulate),MATLAB再表面化簡前將表面分成三角形。傳回來的表面通常被定義成三角形(triangles)。
輸出三角型的個數也許不會剛剛好是化簡係數參數(r
)所明確說明的值。特別是在如果原來土地土地的表面不是三角形。particularly if the faces of the original patch are not triangles.
Examples
[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)
See Also
isosurface
, isocaps
, isonormals
, smooth3
, subvolume
, reducevolume
rectint | reducevolume |