主要内容

alphaShape

在2 d和3 d多边形和多面体点

描述

一个alphaShape创建一个边界面积或体积,围绕一组二维或三维点。你可以操作alphaShape对象收紧或放松点周围的适合创建一个非凸区域。你也可以添加或删除点或抑制孔或地区。

当你创建一个alphaShape几何查询对象,您可以执行。例如,您可以确定一个点是否在形状或你可以找到地区构成形状的数量。你也可以计算有用量面积,周长,面积,体积,绘制形状视觉检查。

创建

创建一个alphaShape对象,使用alphaShape函数输入参数定义形状的顶点。你也可以指定一个α半径和孔或区域阈值时创建alphaShape

描述

例子

轴马力= alphaShape (x,y)创建一个二维α点的形状(x, y)使用默认α半径。默认的αα半径生产最合适的形状,它包括所有的点。

轴马力代表一个多边形。多边形没有孤立点或边缘,也没有晃来晃去的边缘。

例子

轴马力= alphaShape (x,y,z)创建一个3 dα点的形状(x, y, z)使用默认α半径。

轴马力代表一个多面体。多面体前面所述多边形的特征,但它还没有孤立的脸或悬空的脸。

例子

轴马力= alphaShape (P)指定点(x, y)(x, y, z)列的矩阵P

例子

轴马力= alphaShape (___,一个)创建一个α形状与α半径一个在前面的语法使用任何参数。

例子

轴马力= alphaShape (___,名称,值)使用指定的一个或多个额外的选项名称,值对参数。例如,您可以抑制内部孔或空间使用“HoleThreshold”

输入参数

全部展开

的坐标点,指定为一个列向量。

数据类型:

的坐标点,指定为一个列向量。

数据类型:

z坐标的点,指定为一个列向量。

数据类型:

点坐标,指定为一个矩阵与两列(α2 - d形状)或三列的矩阵(α3 d形状)。

  • 二维的列P代表xy坐标,分别。

  • 三维的列P代表x,y,z坐标,分别。

数据类型:

α半径,指定为负的标量。默认的α半径一个= criticalAlpha(轴马力,“点”),这是最小的α半径产生α的形状包含所有点。

指定= criticalAlpha(轴马力,一个地区)使用最小的α半径产生α形状只有一个地区。

的极端值一个

  • ,在那里alphaShape生产的凸包

  • 0,在那里alphaShape生成一个空的α的形状

数据类型:

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:轴马力= alphaShape (…,“HoleThreshold”, 10)

最大的面积或体积内孔或孔洞填充,指定为一个有限的,负的标量。

  • 对于二维,HoleThreshold指定的最大区域填写内部漏洞。

  • 对于三维,HoleThreshold指定的最大体积内部空洞填补。孔扩展完全通过α形状不能填写。

当你指定一个“HoleThreshold”和一个“RegionThreshold”,应用程序依赖阈值的顺序。alphaShape填入洞前抑制区域。

数据类型:

最大面积(二维)或体积(3 d)地区的压制,指定为一个有限的,负的标量。

当你指定一个“HoleThreshold”和一个“RegionThreshold”,应用程序依赖阈值的顺序。alphaShape填入洞前抑制区域。

数据类型:

属性

全部展开

的坐标点,指定为一个矩阵有两个或三个列(二维或三维点集)。这些观点最初是用于创建α形状,排除重复。

数据类型:

α半径,指定为负的标量。阿尔法半径是α磁盘或球体的半径,扫过点创建α的形状。

默认的α半径一个= criticalAlpha(轴马力,“点”),这是最小的α半径产生α形状封闭所有点。指定= criticalAlpha(轴马力,一个地区)使用最小的α半径产生α形状只有一个地区。

的极端值α有以下条件:

  • 如果α,然后alphaShape产生凸包。

  • 如果α0,那么由此产生的alphaShape是空的。

数据类型:

最大的面积或体积内孔或孔洞填充,指定为一个有限的非负标量。

  • 对于二维,HoleThreshold指定的最大区域填写内部漏洞。

  • 对于三维,HoleThreshold指定的最大体积内部空洞填补。孔扩展完全通过α3 d形状不能填写。

默认值是0,所以alphaShape不抑制任何漏洞或空洞。的应用HoleThresholdRegionThreshold属性是order-dependent。alphaShape填入洞前抑制区域。

数据类型:

最大面积(二维)或体积(3 d)地区的压制,指定为一个有限的非负标量。

默认值是0,所以alphaShape不抑制任何地区。的应用HoleThresholdRegionThreshold属性是order-dependent。alphaShape填入洞前抑制区域。

数据类型:

对象的功能

alphaSpectrum α值给不同的α形状
criticalAlpha α半径定义的关键过渡形状
numRegions α的区域形状
inShape 确定点在α的形状
alphaTriangulation 三角,α的形状
boundaryFacets α形状的边界面
周长 α2 - d形状的周长
区域 α2 - d形状的区域
surfaceArea α3 d形状的表面积
体积 α3 d形状的体积
情节 情节α形状
nearestNeighbor 确定最近的α形状边界点

例子

全部折叠

找到数据的二维点云的形状。

创建和绘制一组二维点。

th =(π/ 12:π/ 2 *π)';x1 =[重塑(cos (th) *(1:5),元素个数(cos (th) * (1:5)), 1);0);日元=[重塑(罪(th) *(1:5),元素个数(罪(th) * (1:5)), 1);0);x = [x1;x1 + 15);y =[日元;y1);情节(x, y,“。”)轴平等的

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

计算一个α点集使用默认的形状α半径。

轴马力= alphaShape (x, y);情节(shp)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

检查默认的值α半径。

shp.Alpha
ans = 0.7752

默认的α半径导致一个α锯齿形边界的形状。为了更好的捕捉点集的边界,尝试一个更大的α半径。

计算一个使用2.5的alpha值α形状。

shp.Alpha= 2.5; plot(shp)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

找到的3 d点云数据的形状。

创建和绘制一组三维点。

(x1, y1, z1) =球(24);x1 = x1 (:);日元= y₁(:);z1 = z1 (:);x2 = x1 + 5;P = [(x1, y1 z1;x2 y1 z1);P =独特(P,“行”);plot3 (P (: 1), P (:, 2), P (:, 3),“。”)轴平等的网格

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

计算α3 d形状使用α1半径。

轴马力= alphaShape (P (: 1), P (:, 2), P (:, 3), 1);情节(shp)轴平等的

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

创建一个α形状通过指定其α半径,α和填补这个洞的形状。

创建和绘制二维点集。

th =(π/ 12:π/ 2 *π)';x1 =[重塑(cos (th) *(2:5),元素个数(cos (th) * (2:5)), 1);];日元=[重塑(罪(th) *(2:5),元素个数(罪(th) * (2:5)), 1);];x = [x1;x1 + 15,);y =[日元;y1);情节(x, y,“。”)轴平等的

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

计算一个α点集的形状使用α1半径。

轴马力= alphaShape (x, y, 1);情节(shp)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

一个αα1的结果在一个半径的形状与两个区域包含漏洞。抑制α的小洞的形状,你可以指定一个HoleThreshold通过估算的面积最大的洞填满。填满所有孔的形状,你可以分配一个任意大的价值HoleThreshold

创建一个新的阿尔法抑制空穴通过指定的形状HoleThreshold15。

轴马力= alphaShape (x, y, 1,“HoleThreshold”15);情节(shp)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

α形状的控制区域的数量设置一个区域阈值。

创建和绘制一组三维点。

(x1, y1, z1) =球(24);x1 = x1 (:);日元= y₁(:);z1 = z1 (:);x2 = x1 + 5;(x3, y3, z3) =(5)范围;x3 = x3 (:) + 5;y3 = y3 (:);z3 = z3 (:) + 25;P = [(x1, y1 z1; x2 y1 z1; 0.25*x3 0.25*y3 0.25*z3]; P = unique(P,“行”);plot3 (P (: 1), P (:, 2), P (:, 3),“。”)轴平等的网格

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

计算一个α点集的形状使用α1半径。

轴马力= alphaShape (P, 1);情节(shp)轴平等的

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

在这种情况下,α形状产生一个小区域上方的两个大小相同的球体。抑制这一地区,你可以指定一个RegionThreshold通过估计其体积。

指定一个RegionThreshold2。由此产生的形状只包含两个较大的地区。

轴马力。RegionThreshold = 2;情节(shp)轴平等的

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

点添加到一个现有的α的形状。

创建和绘制二维点集。

th =(π/ 12:π/ 2 *π)';x1 =[重塑(cos (th) *(1:5),元素个数(cos (th) * (1:5)), 1);0);日元=[重塑(罪(th) *(1:5),元素个数(罪(th) * (1:5)), 1);0);x = [x1;x1 + 15,);y =[日元;y1);情节(x, y,“。”)轴平等的

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

计算一个α点集的形状使用α1半径。由此产生的α形状有两个地区。

轴马力= alphaShape (x, y, 1);情节(shp)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

现在添加第三个地区阿尔法形状直接通过添加新的点shp.Points矩阵。

x3 = x1 + 8;y3 = y₁+ 10;shp.Points (+ 1,:) = (x3 y3);情节(shp)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的补丁。

扩展功能

版本历史

介绍了R2014b