MATLAB中Delaunay三角剖分怎么求各个离散点法矢,并且在图上画出法矢信息?

比如有一系列空间三维点云坐标数据,对这些数据Delaunay三角剖分后(MATLAB中已有命令),怎么求各个离散点法矢,并且在图上画出法矢信息?

N=10;
[x,y]=meshgrid(1:N);
z=peaks(N); %这里用matlab自带peaks函数产生的数据代替你的点云数据

x=x(:);
y=y(:);
z=z(:);

tri = delaunay(x,y); %三角网格划分

tr = TriRep(tri,[x,y,z]); %三角类表示每个三角形面元

P = incenters(tr); %求每个三角面元的内接圆圆心
fn = faceNormals(tr); %求每个三角面元的法向量
trisurf(tri,x,y,z, ...
'FaceColor', 'cyan', 'faceAlpha', 0.8); %画出曲面
axis equal;
hold on;

quiver3(P(:,1),P(:,2),P(:,3), ...
fn(:,1),fn(:,2),fn(:,3),1, 'color','r'); %画出法向量
hold off;
温馨提示:答案为网友推荐,仅供参考
相似回答