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) 允许以列向量格式指定查询点位置。

示例

[SI,BC] = pointLocation(___) 返回重心坐标 BC

示例

全部折叠

为一组随机点创建一个二维 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

为一组随机点创建一个三维 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 的大小为 mpts×ndim,其中 mpts 是查询点的数量,ndim 是点所在空间的维度。

查询点,指定为单独的列向量。指定 QXQY 以给出二维查询点的坐标,或指定 QXQYQZ 以给出三维查询点的坐标。

输出参数

全部折叠

封闭单纯形的索引,以列向量的形式返回。SI 是长度为 mpts 向量,包含每个查询点封闭单纯形的索引。mpts 是查询点的个数。

查询点的重心坐标,以矩阵形式返回。BCmpts×ndim 矩阵,其中每行 BC(i,:) 表示查询点 Q(i,:) 相对于封闭单纯形 SI(i) 的重心坐标。

扩展功能

基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

版本历史记录

在 R2009a 中推出