啮合几何和发现网格面法向量
22日视图(30天)
显示旧的评论
嗨
我想知道如何导入3 d模型。stl文件),
使用MATLAB,网
确定只有网格表面的几何和形成的
找到每个网格的法向量元素及其表面积?
0评论
答案(2)
艾米丽Rolley-Parnell
2022年10月24日
这是一个代码片段,应该做那份工作
%从文件导入网格作为一个“discreteGeometry对象”需要的部分
%微分方程工具箱
meshObj = importGeometry (“sample_shape.stl”);
x = meshObj.Vertices (: 1);
y = meshObj.Vertices (:, 2);
z = meshObj.Vertices (:, 3);
DT = delaunayTriangulation (x, y, z);%注意:将永远是一个凸三角形状
(T, Xb) = freeBoundary (DT);
freeBoundaryT =三角(T, Xb);
%绘制STL和表面法线
%内心和faceNormal都需要*剖分*
P =内心(freeBoundaryT);
F = faceNormal (freeBoundaryT);
trisurf (T, Xb (: 1), Xb (:, 2), Xb (:, 3),…
“FaceColor”,“青色”,“FaceAlpha”,0.8);
轴平等的
持有在
quiver3 (P (: 1), P (:, 2), P (:, 3),…
(:1),F (:, 2), F (:, 3), 0.5,“颜色”,“r”);
% %找到表面积
%发现面临的数量构成的外表面
nFaces =大小(T, 1);
areaArray =南([nFaces, 1]);
为n = 1: nFaces
P = Xb (T (n, 1):);
Q = Xb (T (n, 2):);
R = Xb (T (n, 3):);
PQ = Q - P;
公关= R - P;
areaArray (n) = 0.5 * vecnorm(交叉(PQ、公关),2,2);
结束
totalArea =总和(areaArray);