主要内容

criticalAlpha

R2026b

定义形状中关键变换的 alpha 半径

描述

a = criticalAlpha(shp,type) 返回使 alpha 形状产生显著变换的关键 alpha 半径。将 type 指定为 "all-points" 将返回可生成包括所有点的 alpha 形状的最小 alpha 半径。将 type 指定为 "one-region" 将返回可生成包括所有点且只有一个区域的 alpha 形状的最小 alpha 半径。

示例

示例

全部折叠

创建并绘制一个二维点集。

th = (pi/12:pi/12:2*pi)';
x1 = [reshape(cos(th)*(1:5), ...
      numel(cos(th)*(1:5)),1);
      0];
y1 = [reshape(sin(th)*(1:5), ...
      numel(sin(th)*(1:5)),1);
      0];
x = [x1;x1+15;];
y = [y1;y1];
plot(x,y,".")
axis equal

Two clusters of 2-D points arranged in concentric circles, centered at (0,0) and (15,0)

使用默认 alpha 半径创建一个 alpha 形状。

shp = alphaShape(x,y);

计算生成一个包围所有点的 alpha 形状的最小 alpha 半径,并绘制相应的 alpha 形状。

pc = criticalAlpha(shp,"all-points");
shp.Alpha = pc;
plot(shp)

Alpha shape enclosing all points with two separate regions showing irregular boundaries

计算生成一个包括所有点且只有一个区域的 alpha 形状的最小 alpha 半径。

shp = alphaShape(x,y);
pc = criticalAlpha(shp,"one-region");
shp.Alpha = pc;
plot(shp)

Alpha shape with one region connecting both point clusters via a narrow bridge

输入参数

全部折叠

alpha 形状,指定为 alphaShape 对象。有关详细信息,请参阅 alphaShape。

示例: shp = alphaShape(x,y) 根据 (x,y) 点坐标创建一个二维 alphaShape 对象。

关键变换的类型,指定为 "all-points" 或 "one-region"。

  • "all-points" 对应于可生成一个包括所有点的 alpha 形状的最小 alpha 半径。

  • "one-region" 对应于可生成一个包括所有点且只有一个区域的 alpha 形状的最小 alpha 半径。

数据类型: char

输出参量

全部折叠

关键 alpha 半径,以标量的形式返回。a 是生成 alpha 形状的 alpha 半径的值,该形状包括所有点(如果 type 是 "all-points")或包括单个区域中的所有点(如果 type 是 "one-region")。

在使用 criticalAlpha 计算 a 后,您可以通过键入 shp.Alpha = a 使 shp 的 alpha 半径等于 a。

版本历史记录

在 R2014b 中推出