メインコンテンツ

DelaunayTri

(非推奨) 2 次元および 3 次元における Delaunay 三角形分割

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

説明

DelaunayTri は、点集合から Delaunay 三角形分割オブジェクトを作成します。点を追加または削除することで、三角形分割を段階的に修正することができます。2 次元三角形分割において、エッジの制約を課すことができます。ボロノイ線図と凸包を計算することで位相幾何学的な照合を行うことができます。

作成

説明

DT = DelaunayTri は、空の Delaunay 三角形分割を作成します。

DT = DelaunayTri(X)DT = DelaunayTri(x,y) および DT = DelaunayTri(x,y,z) は、点集合から Delaunay 三角形分割を作成します。点は mptsndim 列の行列 X として指定できます。ここで、mpts は点の数で、ndim は点が存在する空間の次元です (ndim は 2 または 3 です)。または、2 次元の入力の場合に点を列ベクトル (x,y)、3 次元の入力の場合に、列ベクトル (x,y,z) として指定することができます。

DT = DelaunayTri(___,C) は、制約付き Delaunay 三角形分割を作成します。この機能は、2 次元の三角形分割でのみ使用することができます。

入力引数

すべて展開する

三角形分割する点。行列として指定します。Xmptsndim 列の行列です。ここで、mpts は点の数で、ndim は点が存在する空間の次元です (ndim は 2 または 3 です)。

三角形分割する点。個別のベクトルの引数として指定します。2 次元の入力の場合は列ベクトル (x,y)、3 次元の入力の場合は列ベクトル (x,y,z) を指定します。

エッジの制約。行列として指定します。エッジの制約 C は、numc 行 2 列の行列で定義されます。ここで、numc は制約付きのエッジです。C の各行は、エンドポイントのインデックスの項にある制約付きのエッジを点集合 X に定義します。

プロパティ

すべて展開する

頂点の座標。行列として指定します。X の次元は mptsndim です。ここで、mpts は点数で、ndim は点が存在する空間の次元です。xy、または xyz の列ベクトルを使用して三角形分割を作成する場合、データは単一行列 X に統合されます。

三角形分割の連結性。行列として指定します。Triangulation は三角形分割を構成するシンプレックスの集合 (三角形や四面体など) の行列表現です。行列は mtrinv 列のサイズです。ここで、mtri はシンプレックスの数で、nv はシンプレックスごとの頂点の数です。三角形分割は標準のシンプレックス-頂点の形式によって表現されます。各行は、X のインデックスで定義されるシンプレックスを指定します。ここで、X はポイント座標の配列です。

制約付きエッジ。行列として指定します。Constraints は、三角形分割内の制約付きエッジのデータを定義する numc 行 2 列の行列です。ここで、numc は制約付きエッジの数です。各制約付きのエッジは、エンドポイントのインデックスの項で X に定義されます。

制約は、三角形分割の作成時に指定できるほか、Constraints プロパティを直接編集して後から適用できます。

この機能は、2 次元の三角形分割でのみ使用することができます。

オブジェクト関数

以下のオブジェクト関数に加え、DelaunayTri オブジェクトは、かっこ () を使用した三角形分割のインデックス作成をサポートしています。構文は、配列と同じになります。

baryToCart(非推奨) 点の座標を重心座標から直交座標に変換
cartToBary(非推奨) 点の座標を直交座標から重心座標に変換
circumcenters(非推奨) 指定したシンプレックスの外心
faceNormals(非推奨) 指定した三角形の単位法線
incenters(非推奨) 指定したシンプレックスの内心点
inOutStatus(非推奨) 2 次元制約付き Delaunay 三角形分割における三角形のステータス
isEdge(非推奨) 頂点がエッジで連結しているかどうかをテスト
voronoiDiagram(非推奨) Delaunay 三角形分割のボロノイ線図

すべて折りたたむ

単位正方形内にある 20 個の乱数点の Delaunay 三角形分割を計算し、三角形分割をプロットします。

rng default
x = rand(20,1);
y = rand(20,1);
dt = DelaunayTri(x,y);
triplot(dt)

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

詳細

すべて展開する

ヒント

  • DelaunayTri は、境界の制約が交差するかオーバーラップする場合に、不正確な結果または矛盾する結果を生成することがあります。この動作を回避するには、1 つ以上の閉じた境界を形成する、交差もオーバーラップもしない複数の制約を使用します。

バージョン履歴

R2009a で導入