メインコンテンツ

三角形分割

三角形分割はコンピューター グラフィックス、物理モデリング、地理情報システム、医療画像処理などで、2 次元と 3 次元の幾何学的領域を表現するために多くの場合使用します。地図の多角形を以下に示します。

Plot of land mass with a rough border.

これは以下に示す地図上に三角形分割で表すことができます。

Plot of a land mass with a rough border that has triangles of various sizes superimposed.

三角形分割は複雑な多角形をより簡単な三角多角形に分解します。このような多角形は、幾何学ベースのアルゴリズムまたはグラフィックス アプリケーションを開発する場合に使用することができます。

同様に、三角形分割を使用して 3 次元幾何学的領域の境界も表現することができます。以下の図は 3 次元空間における点集合の凸包を示しています。凸包の各小平面は三角形です。

Plot of 3-D shape boundary formed by triangles of various sizes.

MATLAB® を使用して、次のタイプの三角形分割を表現し、クエリすることができます。

  • 頂点およびエッジで囲まれた三角形で構成される 2 次元の三角形分割

  • 頂点およびエッジで囲まれた三角形で構成される 3 次元表面の三角形分割

  • 頂点、エッジおよび面で囲まれた四面体で構成される 3 次元の三角形分割

MATLAB では、三角形分割を表現するために行列形式を使用します。この形式は次の 2 つの部分で構成されます。

  • 頂点。各行に三角形分割の点の座標が含まれる行列として表現します。

  • 三角形分割の連結性。三角形または四面体を各行に定義した行列として表現します。

次の図に簡単な 2 次元の三角形分割を示します。

Plot of triangulation consisting of six vertices and four triangles, with each vertex and triangle labeled.

次の表に頂点の情報を示します。

頂点
頂点 IDx 座標y 座標
V12.58.0
V26.58.0
V32.55.0
V46.55.0
V51.06.5
V68.06.5

上の表のデータは MATLAB 環境で行列として保存されます。頂点 ID は特定の頂点を識別するために使用するラベルです。これは頂点 ID の概念を説明するために示してありますが、明示的に保存されるわけではありません。代わりに、行列の行番号が頂点 ID として機能します。

次の表に三角形分割の連結性データを示します。

連結性
三角形 ID境界頂点の ID
T1531
T2321
T3342
T4462

この表のデータは MATLAB 環境で行列として保存されます。三角形 ID は特定の三角形を識別するために使用するラベルです。これは三角形 ID の概念を説明するために示してありますが、明示的に保存されるわけではありません。代わりに、行列の行番号が三角形 ID として機能します。

三角形 T1 は 3 つの頂点 {V5, V3, V1} で定義されます。同様に、T4 は頂点 {V4, V6, V2} で定義されます。この形式は必然的に高次元でも使用できます。その場合は、データの列を追加する必要があります。たとえば、3 次元空間の四面体は、それぞれ 3 つの座標 (xyz) を有している 4 つの頂点で定義されます。

行列形式を使用することにより、低水準の配列に基づいてコンパクトに三角形分割を表現できます。三角形分割をアルゴリズムの開発に使用する場合、幾何学的な性質、トポロジおよび隣接情報についての詳細が必要なことがあります。

たとえば、下記に示す注釈付きの三角形分割をプロットする前に、三角形の内心点を計算する場合があります。この場合、内心点を使用して、三角形のラベル (T1、T2 など) をそれぞれの三角形内に表示することができます。境界線を赤でプロットする場合は、1 つの三角形のみで参照されているエッジを特定する必要があります。

Triangulation consisting of six vertices and four triangles, with the outer border outlined in red.