Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-08-28
帖子: 3
声望力: 0 ![]() |
![]()
小弟作业,需要matlab程序:对正六面体的四边网格的光滑细分格式:利用拓扑网格的加细剖分,修改顶点坐标,把正六面体细分成一个近似球的图形
和八面体的三角细分格式(类似上面) 这段程序的作用是立方体的四边细分,我没学过mathematica,看不懂,向各位求助!!! quadsub[{T_,p_}]:= Module[{idx,index,currIndex=Length[p],newT,newp}, SetAttributes[index,Orderless]; idx[_,_]=0; index[i_,j_]:=If[idx[i,j]==0,idx[i,j]=++currIndex,idx[i,j]]; newp=Table[0,{2Length[T]+2Length[p]+10}]; newT=Flatten[Table[ With[{i00=T[[1,1]],i20=T[[1,2]],i22=T[[1,3]], i02=T[[1,4]]}] , With[[{i01=index[i00,i02],i12=index[i02,i22] i10=index[i00,i20],i21=index[i20,i22],i11=index[i20,i22] i11=++currIndex}, newp[[{i00,i20,i22,i02,i10,i21,i12,i01,i11}]] =M2.p[[T[[1]]]]; {{i00,i10,i11,i01},{i02,i01,i11,i12},{i20,i21,i11,i10},{i22,i12,i11,i21}]], {length[T]}],1]; {newT,Take[newp,currIndex]}] 其中M2是个常规矩阵=1/4*{{4,0,0,0},{0,4,0,0},{0 0 4 0},{0 0 0 4}, {2 2 0 0 },{0 2 2 0},{0 0 2 2 },{2 0 0 2} ,{1 1 1 1}} {T 、p}是立方体的拓扑结构 {[1,4,3,2;1,2,6,5;2,3,7,6;3,4,8,7;4,1,5,8;5,6,7,8],[0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1]} ******请高手不吝指教,有知道相关算法的也贴上来,急用啊! *******我只知道这跟有限元有些关系,有高手能具体指点下吗?? 此帖于 2009-08-28 23:39 被 dujunggl 编辑。 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-08-28
帖子: 3
声望力: 0 ![]() |
![]()
T p是立方体的拓扑结构
|
![]() |
![]() |