Main Content

pointLocation

(非推奨) 点を囲んでいる三角形または四面体

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

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

説明

SI = pointLocation(DT,Q) は、行列 Q のクエリ点の位置ごとに囲んでいるシンプレックス (三角形/四面体) のインデックス SI を返します。点 Q(k,:) を囲んでいるシンプレックスは SI(k) です。pointLocation は、凸包の外部の点に対してはいずれも NaN を返します。

SI = pointLocation(DT,QX,QY)SI = pointLocation(DT,QX,QY,QZ) では、それぞれ 2 次元と 3 次元において、クエリ点の位置を列ベクトルの形式で指定できます。

[SI,BC] = pointLocation(___) は、重心座標 BC を返します。

すべて折りたたむ

一連の乱数点に対する 2 次元の Delaunay 三角形分割を作成します。

rng default
X = rand(10,2);
dt = DelaunayTri(X);

指定されたクエリ点を含む三角形を検出します。

Q = [0.25 0.25; 0.5 0.5];
triids = pointLocation(dt,Q)
triids = 2×1

     2
     7

一連の乱数点に対する 3 次元の Delaunay 三角形分割を作成します。

rng default
x = rand(10,1); 
y = rand(10,1); 
z = rand(10,1);
dt = DelaunayTri(x,y,z);

指定されたクエリ点を含む三角形を検出し、重心座標を評価します。

Q = [0.25 0.25 0.25; 0.5 0.5 0.5];
[tetids, bcs] = pointLocation(dt,Q)
tetids = 2×1

   NaN
     3

bcs = 2×4

       NaN       NaN       NaN       NaN
    0.2255    0.3823    0.2182    0.1739

入力引数

すべて折りたたむ

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

クエリ点。行列として指定します。Q は、mptsndim 列のサイズです。ここで、mpts はクエリ点数で、ndim は点のある空間の次元です。

クエリ点。個別の列ベクトルとして指定します。QX および QY を指定して 2 次元クエリ点の座標を示すか、QXQY および QZ を指定して 3 次元クエリ点の座標を示します。

出力引数

すべて折りたたむ

囲んでいるシンプレックスのインデックス。列ベクトルとして返されます。SI は各クエリ点を囲んでいるシンプレックスのインデックスを含む長さ mpts のベクトルです。mpts はクエリ点の数です。

クエリ点の重心座標。行列として返されます。BCmptsndim 列の行列です。各行 BC(i,:) は、囲んでいるシンプレックス SI(i) におけるクエリ点 Q(i,:) の重心座標を表します。

拡張機能

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

バージョン履歴

R2009a で導入