Main Content

featureEdges

(非推奨) 表面の三角形分割の鋭いエッジ

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

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

説明

FE = featureEdges(TR,filterangle) は、エッジ行列 FE を返します。この方法は、一般的に表示目的で曲面メッシュ内の鋭いエッジを抽出するために使われます。1 つの三角形でのみ共有されるエッジと 2 つを超える三角形で共有されるエッジは、既定の設定では特徴エッジと見なされます。MATLAB® の 2 次元三角形分割の場合、三角形は付属する頂点の周りに、反時計回りの順序で配置されます。

メモ

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

すべて折りたたむ

表面の三角形分割を作成します。

x = [0 0 0 0 0 3 3 3 3 3 3 6 6 6 6 6 9 9 9 9 9 9]';
y = [0 2 4 6 8 0 1 3 5 7 8 0 2 4 6 8 0 1 3 5 7 8]';
dt = DelaunayTri(x,y);
tri = dt(:,:);

表面を作成するために 2 次元メッシュを持ち上げます。

z = [0 0 0 0 0 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0]';
subplot(1,2,1)
trisurf(tri,x,y,z,'FaceColor','cyan')
axis equal

Figure contains an axes object. The axes object contains an object of type patch.

pi/6 のフィルターの角度を使って特徴エッジを計算します。

tr = TriRep(tri,x,y,z);
fe = featureEdges(tr,pi/6)';

三角形分割内の特徴エッジを 2 番目のプロットで強調表示します。

subplot(1,2,2)
trisurf(tr,'FaceColor','cyan','EdgeColor','none', ...
     'FaceAlpha',0.8)
axis equal
hold on
plot3(x(fe),y(fe),z(fe),'k','LineWidth',1.5)
hold off

Figure contains 2 axes objects. Axes object 1 contains an object of type patch. Axes object 2 contains 25 objects of type patch, line.

入力引数

すべて折りたたむ

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

しきい値の角度。ラジアン単位のスカラー角度として指定します。filterangle は範囲 (0,π) にある必要があります。featureEdges は、π との角度差が filterangle より大きい二面角をなす、隣接する三角形を返します。

出力引数

すべて折りたたむ

特徴エッジ。行列として返されます。FEm 行 2 列のサイズです。ここで、m はメッシュ内の計算された特徴エッジの数です。エッジのインデックスの頂点は、頂点の座標 TR.X を表す点の配列です。

拡張機能

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

バージョン履歴

R2009a で導入