Main Content

faceNormal

三角剖分单位法向量

说明

F = faceNormal(TR) 返回二维三角剖分中所有三角形的单位法向量。faceNormal 函数仅支持二维三角剖分。F 是三列矩阵,其中每行包含与 TR.ConnectivityList 中的一个三角形对应的单位法向坐标。

示例

F = faceNormal(TR,ID) 返回按 ID 进行索引的每个三角形的单位法向量。TR 中的三角形的标识号是属性 TR.ConnectivityList 的对应行号。

示例

全部折叠

计算并绘制球面上三角剖分各分面的单位法向量。

在球面上创建一组点。

rng default;
theta = rand([100,1])*2*pi;
phi = rand([100,1])*pi;
x = cos(theta).*sin(phi);
y = sin(theta).*sin(phi);
z = cos(phi);

使用 delaunayTriangulation 函数对球体进行三角剖分。

DT = delaunayTriangulation(x,y,z);

查找三角剖分的自由边界面,并使用它们在曲面上创建二维三角剖分。

[T,Xb] = freeBoundary(DT);
TR = triangulation(T,Xb);

计算 TR 中每个三角面的中心和面法向量。

P = incenter(TR);
F = faceNormal(TR);  

绘制三角剖分以及中心和面法向。

trisurf(T,Xb(:,1),Xb(:,2),Xb(:,3), ...
     'FaceColor','cyan','FaceAlpha',0.8);
axis equal
hold on  
quiver3(P(:,1),P(:,2),P(:,3), ...
     F(:,1),F(:,2),F(:,3),0.5,'color','r');

输入参数

全部折叠

仅用于二维三角剖分的三角剖分表示,指定为标量 triangulationdelaunayTriangulation 对象。

数据类型: triangulation | delaunayTriangulation

三角形标识,指定为标量或列向量,其每个元素对应于三角剖分对象中的单个三角形。每个三角形的标识号是 ConnectivityList 属性的对应行号。

数据类型: double

扩展功能

基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

版本历史记录

在 R2013a 中推出