Main Content

faceNormal

三角形分割の単位法線ベクトル

説明

F = faceNormal(TR) は、2 次元三角形分割のすべての三角形に対する単位法線ベクトルを返します。関数 faceNormal は 2 次元三角形分割のみをサポートしています。F は 3 列の行列で、各行には TR.ConnectivityList の三角形に対応する単位法線座標が含まれます。

F = faceNormal(TR,ID) は、ID でインデックス付けされた三角形ごとの単位法線ベクトルを返します。TR の三角形の ID 番号は、プロパティ 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);

三角形分割の自由境界の小平面を検出し、これを使用して表面上に 2 次元三角形分割を作成します。

[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');

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

入力引数

すべて折りたたむ

2 次元三角形分割限定の三角形分割の表現。スカラー triangulation または delaunayTriangulation オブジェクトとして指定します。

データ型: triangulation | delaunayTriangulation

三角形 ID。要素が三角形分割オブジェクトの個々の三角形に対応するスカラーまたは列ベクトルとして指定します。各三角形の ID 番号は、ConnectivityList プロパティの対応する行番号です。

データ型: double

拡張機能

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2013a で導入