ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

delaunayTriangulation

2 次元および 3 次元におけるドローネ三角形分割

説明

一連の点から 2 次元または 3 次元の ドローネ三角形分割を作成するには、delaunayTriangulation オブジェクトを使用します。2 次元データでは、エッジの制約を指定することもできます。

delaunayTriangulation に対しては、triangulation クエリを含む、さまざまな幾何学的なクエリと位相幾何学的なクエリを実行できます。たとえば、特定の点を含む小平面を見つけたり、凸包の頂点を探したり、ボロノイ線図を計算したりします。

作成

delaunayTriangulation オブジェクトを作成するには、三角形分割の点と制約付きエッジを定義する入力引数を指定して、関数 delaunayTriangulation を使用します。

説明

DT = delaunayTriangulation(P) は、P 内の点からドローネ三角形分割を作成します。点が 2 次元空間と 3 次元空間のいずれにあるかに応じて、行列 P は 2 列または 3 列です。

DT = delaunayTriangulation(P,C) は、P の 2 次元の点に対するエッジの制約を行列 C で指定します。C の各行は制約付きエッジの始点および終点の頂点 ID を定義します。頂点 ID は、DT.Points プロパティ内の対応する頂点の行番号です。

DT = delaunayTriangulation(x,y) は、列ベクトル x および y の点座標から 2 次元ドローネ三角形分割を作成します。

DT = delaunayTriangulation(x,y,C) は、行列 C でエッジの制約を指定します。

DT = delaunayTriangulation(x,y,z) は、列ベクトル xy および z の点座標から 3 次元ドローネ三角形分割を作成します。

DT = delaunayTriangulation() は、空のドローネ三角形分割を作成します。

入力引数

すべて展開する

点。三角形分割の点の x 座標、y 座標、および (場合によっては) z 座標の列をもつ行列として指定します。P の行番号は、三角形分割の頂点 ID です。

三角形分割の点の x 座標。列ベクトルとして指定します。

三角形分割の点の y 座標。列ベクトルとして指定します。

三角形分割の点の z 座標。列ベクトルとして指定します。

2 列の行列として指定された制約付きエッジの頂点 ID。C の各行は制約付きエッジに対応し、2 つの ID を含んでいます。

  • C(j,1) は、エッジの開始位置の頂点 の ID です。

  • C(j,2) は、エッジの終了位置の頂点 の ID です。

エッジの制約は、2 次元三角形分割に対してのみ指定できます。

プロパティ

すべて展開する

三角形分割の点。次の特性を備えた行列として表されます。

  • DT.Points の各行は、頂点の座標を含んでいます。

  • DT.Points の各行の番号は頂点 ID です。

三角形分割連結リスト。次の特性を備えた行列として表されます。

  • DT.ConnectivityList の各要素は頂点 ID です。

  • 各行は、三角形分割の三角形または四面体を表します。

  • DT.ConnectivityList の各行の番号は三角形または四面体 ID です。

制約付きエッジ。頂点 ID の 2 列の行列として表されます。DT.Constraints の各行は制約付きエッジに対応し、2 つの ID を含んでいます。

  • DT.Constraints(j,1) は、エッジの開始位置の頂点 の ID です。

  • DT.Constraints(j,2) は、エッジの終了位置の頂点 の ID です。

三角形分割に制約付きエッジがない場合、DT.Constraints は空行列になります。

オブジェクト関数

convexHullドローネ三角形分割の凸包
isInterior ドローネ三角形分割の内部の点をクエリ
voronoiDiagramドローネ三角形分割のボロノイ線図
barycentricToCartesian座標を重心座標から直交座標に変換
cartesianToBarycentric座標を直交座標から重心座標に変換
circumcenter三角形または四面体の外心
edgeAttachments指定エッジに接続している三角形または四面体
edges三角形分割のエッジ
faceNormal三角形分割の単位法線ベクトル
featureEdges三角形分割の鋭いエッジの処理
freeBoundary自由境界の小平面
incenter三角形分割の要素の内心
isConnected2 つの頂点がエッジで連結されているかどうかをテスト
nearestNeighbor最も近い頂点
neighbors三角形または四面体の近傍
pointLocation三角形または四面体を囲んでいる点
size三角形分割連結リストのサイズ
vertexAttachments頂点に追加された三角形または四面体
vertexNormal三角形分割の頂点法線

すべて折りたたむ

30 個の乱数点の 2 次元 delaunayTriangulation を作成します。

P = gallery('uniformdata',[30 2],0);
DT = delaunayTriangulation(P)
DT = 
  delaunayTriangulation with properties:

              Points: [30x2 double]
    ConnectivityList: [50x3 double]
         Constraints: []

各三角形の中心点を計算し、三角形分割とその中心点をプロットします。

IC = incenter(DT);
triplot(DT)
hold on
plot(IC(:,1),IC(:,2),'*r')

30 個の乱数点の 3 次元 delaunayTriangulation を作成します。

x = gallery('uniformdata',[30 1],0);
y = gallery('uniformdata',[30 1],1);
z = gallery('uniformdata',[30 1],2);
DT = delaunayTriangulation(x,y,z)
DT = 
  delaunayTriangulation with properties:

              Points: [30x3 double]
    ConnectivityList: [111x4 double]
         Constraints: []

三角形分割をプロットします。

tetramesh(DT,'FaceAlpha',0.3);

三角形分割の凸包を計算してプロットします。

[K,v] = convexHull(DT);
trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3))

詳細

すべて展開する

R2013a で導入