資源簡介
Catmull-Clark細分的MATLAB實現,test.m文件中是執行文件,具體的算法在CCSubdivision.m 中,對于有邊界和無邊界的四邊形網格都是可以用的,輸入和輸出都是obj文件
代碼片段和文件信息
function?[VV?FF?S]?=?CCSubdivision(V?F?iter)??
????%?Catmull_Clark?subdivision??
????if?~exist(‘iter‘‘var‘)??
????????iter?=?1;??
????end??
????VV?=?V;??
????FF?=?F;??
??????
????for?i?=?1:iter???
???????
????????nv?=?size(VV1);??
????????nf?=?size(FF1);???
????????
????????O?=?outline(FF);??
??????????
????????original?=?1:nv;??
????????boundary?=?O(:1)‘;??
????????interior?=?original(~ismember(original?boundary));??
??????????
????????no?=?length(original);??
????????nb?=?length(boundary);??
????????ni?=?length(interior);??
??
????????%%?Sv??
????????Etmp?=?sort([FF(:1)?FF(:2);FF(:2)?FF(:3);FF(:3)?FF(:4);FF(:4)?FF(:1)]2);??
????????[E?~?idx]?=?unique(Etmp?‘rows‘);??
??????????
????????Aeven?=?sparse([E(:1)?E(:2)]?[E(:2)?E(:1)]?1?no?no);??
????????Aodd?=?sparse([FF(:1)?FF(:2)]?[FF(:3)?FF(:4)]?1?no?no);??
????????Aodd?=?Aodd?+?Aodd‘;??
??????????
????????val_even?=?sum(Aeven2);??
????????beta?=?3./(2*val_even);??
??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2920??2017-08-11?14:13??catmullclark\CCSubdivision.m
?????文件????????737??2017-06-10?19:45??catmullclark\obj_write.m
?????文件??????29546??2017-06-08?20:49??catmullclark\obj__read.m
?????文件????????505??2017-08-11?14:37??catmullclark\outline.m
?????文件???????1374??2017-07-04?19:53??catmullclark\six.obj
?????文件?????336464??2017-08-11?14:52??catmullclark\six1.obj
?????文件???????9082??2017-07-04?16:55??catmullclark\spoon.obj
?????文件????2460728??2017-08-11?13:08??catmullclark\spoon1.obj
?????文件????????310??2017-08-11?14:52??catmullclark\test.m
?????文件???????1053??2017-07-04?22:02??catmullclark\tett.m
?????文件???????1419??2017-07-04?16:53??catmullclark\torus.obj
?????文件?????216730??2017-08-11?14:52??catmullclark\torus1.obj
?????目錄??????????0??2017-12-07?20:07??catmullclark
-----------?---------??----------?-----??----
??????????????3060868????????????????????13
評論
共有 條評論