Main Content

faceNormals

(非推奨) 指定した三角形の単位法線

faceNormals(TriRep) は推奨されません。代わりに faceNormal(triangulation) を使用してください。

TriRep は推奨されません。代わりに triangulation を使用してください。

説明

FN = faceNormals(TR) は、三角形分割の三角形ごとの単位法線ベクトルを返します。三角形 i に関連付けられた法線は、FNi 番目の行です。

メモ

このクエリは、三角形の曲面メッシュにのみ適用可能です。

FN = faceNormals(TR,TI) は、指定した三角形 TI ごとの単位法線ベクトルを返します。

すべて折りたたむ

球面の表面上にある乱数点の標本を三角形分割します。

numpts = 100;
thetha = rand(numpts,1)*2*pi;
phi = rand(numpts,1)*pi;
x = cos(thetha).*sin(phi);
y = sin(thetha).*sin(phi);
z = cos(phi);
dt = DelaunayTri(x,y,z);
[tri,Xb] = freeBoundary(dt);
tr = TriRep(tri,Xb);

TriRep オブジェクトを使用して、各三角形の法線ベクトルを計算します。

fn = faceNormals(tr);

法線ベクトルを重ねた quiver プロットで三角形分割をプロットし、結果を表示します。incenters を使用して、ベクトルを各三角形の中心に配置します。

P = incenters(tr);
trisurf(tri,Xb(:,1),Xb(:,2),Xb(:,3), ...
     'FaceColor','cyan','faceAlpha',0.8)
axis equal
hold on
quiver3(P(:,1),P(:,2),P(:,3), ...
     fn(:,1),fn(:,2),fn(:,3),0.5,'color','r')
hold off

Figure contains an axes object. The axes object contains 2 objects of type patch, quiver.

入力引数

すべて折りたたむ

三角形分割の表現。TriRep オブジェクトまたは DelaunayTri オブジェクトとして指定します。

三角形のインデックス。列ベクトルとして指定します。TI は三角形分割行列 TR.Triangulation へのインデックスを含みます。

出力引数

すべて折りたたむ

面法線ベクトル。行列として返されます。FNm 行 3 列の行列です。ここで m = length(TI) であり、クエリする三角形の数です。各行 FN(i,:) は、三角形 TI(i) の単位法線ベクトルを表します。

バージョン履歴

R2009a で導入