Main Content

pointLocation

三角形または四面体を囲んでいる点

説明

ID = pointLocation(TR,P) は、P のクエリ点を囲んでいる三角形または四面体の ID を返します。行列 P の各行は、クエリ点の座標を含んでいます。

ID = pointLocation(TR,x,y) は、2 次元クエリ点の x 座標と y 座標を個別の列ベクトルとして指定します。

ID = pointLocation(TR,x,y,z) は、3 次元クエリ点の x 座標、y 座標、z 座標を個別の列ベクトルとして指定します。

[ID,B] = pointLocation(___) は、前述の任意の構文で、囲んでいる三角形または四面体に対する各クエリ点の重心座標も返します。

すべて折りたたむ

一連のクエリ点を囲む三角形分割の三角形を求めます。

三角形分割の点と連結を定義します。

TP = [2.5 8.0; 6.5 8.0; 2.5 5.0; 6.5 5.0; 1.0 6.5; 8.0 6.5];
C = [5 3 1; 3 2 1; 3 4 2; 4 6 2];
TR = triangulation(C,TP);

2 つのクエリ点を定義します。

P = [2.25 7; 6 6.5];

三角形分割とクエリ点をプロットします。

triplot(TR)
hold on
plot(P(:,1),P(:,2),'k*')
ylim([4 9])
xlim([0 9])

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

各クエリ点を囲む三角形の ID を特定します。

ID = pointLocation(TR,P)
ID = 2×1

     1
     3

クエリ点を囲む三角形を赤色で強調表示します。

triplot(TR.ConnectivityList(ID,:),TP(:,1),TP(:,2),'r')

Figure contains an axes object. The axes object contains 3 objects of type line. One or more of the lines displays its values using only markers

一連のクエリ点を囲む 3 次元三角形分割の四面体を求めます。

一連の 3 次元の点から Delaunay 三角形分割を作成します。

rng('default')
x = rand([20 1]);
y = rand([20 1]);
z = rand([20 1]);
TR = delaunayTriangulation(x,y,z);

クエリ点を囲む四面体の ID を求め、クエリ点の重心座標を計算します。

P = [0.7 0.6 0.3; 0.5 0.5 0.5];
[ID,B] = pointLocation(TR,P)
ID = 2×1

     9
     8

B = 2×4

    0.2046    0.0893    0.5721    0.1340
    0.1900    0.1495    0.6422    0.0183

入力引数

すべて折りたたむ

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

データ型: triangulation | delaunayTriangulation

クエリ点。2 列の行列 (2 次元) または 3 列の行列 (3 次元) として指定します。P には、クエリ点の x 座標、y 座標、および (該当する場合は) z 座標が格納されます。

データ型: double

クエリ点の x 座標。列ベクトルとして指定します。

データ型: double

クエリ点の y 座標。列ベクトルとして指定します。

データ型: double

クエリ点の z 座標。列ベクトルとして指定します。

データ型: double

出力引数

すべて折りたたむ

クエリ点を囲んでいる三角形または四面体の ID。列ベクトルとして返されます。三角形または四面体の ID は、ConnectivityList プロパティの対応する三角形または四面体の行番号です。

クエリ点が 2 つ以上の三角形または四面体の境界上に位置する場合、最も大きい ID が返されます。

三角形分割の三角形または四面体にない点については、IDNaN 値が格納されます。

データ型: double

囲んでいる三角形または四面体を基準とした、各クエリ点の重心座標。3 列の行列 (2 次元) または 4 列の行列 (3 次元) として返されます。

データ型: double

拡張機能

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

バージョン履歴

R2013a で導入