为三角面片加上重心和在Matlab上绘制

今天捣鼓了一天,等于是把昨天随便写写的程序整理了一下,加上了注释,终于使得代码逻辑性加强了一点点…

今天的工作

细分面片

论文中提到需要把已有的三角面片进行细化,尽可能使得不规则的三角面片变为等边三角形。

查阅了资料得知使用Materialise可以快速的细化面片,遂下载运行。结果出乎我的意料。

Old:

原有的三角面片

New:

新的三角面片

具体操作步骤如下:

打开magics软件——>修复——>重画网格——>调整最小边缘长度尽可能小

这个效果,感觉可以直接拿来用了。

所以,很快啊,面片细分的工作就完成了(也许把)

求三角面片重心

下一步的工作原本是创建模型的对偶图,但首先要找到各个三角面片的重心。

整理了一下午加一晚上的代码,把原本用TCP/IP协议在VS和Matlab间传输数据的想法抛弃了,效率太低了,改进也无从下手。

所以还是采用了老方法,直接进行一个txt文档的打印。

用matlab写了个脚本函数,可以处理传过来的数据,绘制stl网格模型和相应面片的质(重)心点

function patchstl(x,y,z,cx,cy,cz)
length = 2352;
x1 = reshape(x,3,length/3);
y1 = reshape(y,3,length/3);
z1 = reshape(z,3,length/3);
patch(x1,y1,z1,'w','FaceAlpha',.5,'EdgeColor','black');
hold on;
scatter3(cx,cy,cz,'MarkerEdgeColor','k',...
                  'MarkerFaceColor',[0 .75 .75]);
view(3);
end

整体效果还可以!

matlab绘图效果

整体效果还可以!

matlab绘图效果2


版权声明:本文为jiangzuojiben原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。