帮助中心帮助中心
alpha 形状的边界面
bf = boundaryFacets(shp)
bf = boundaryFacets(shp,RegionID)
[bf,P] = boundaryFacets(___)
示例
bf = boundaryFacets(shp) 返回一个表示构成 alpha 形状边界的各个面的矩阵。这些面表示二维形状中的边分段和三维形状中的三角形。这些面的顶点创建指向 shp.Points 矩阵的索引。
bf
shp
shp.Points
bf = boundaryFacets(shp,RegionID) 返回 alpha 形状的某个区域的边界面。RegionID 是该区域的 ID 并且 1 ≤ RegionID ≤ numRegions(shp)。
RegionID
1
numRegions(shp)
[bf,P] = boundaryFacets(___) 支持任何上述语法,且返回一个顶点坐标矩阵 P。
P
全部折叠
创建一个三维点集。
[x1, y1, z1] = sphere(24); x1 = x1(:); y1 = y1(:); z1 = z1(:); x2 = x1+5; P = [x1 y1 z1; x2 y1 z1]; P = unique(P,'rows');
使用 alpha 半径 1.5 创建并绘制一个 alpha 形状。
shp = alphaShape(P,1.5); plot(shp) axis equal
计算 alpha 形状并且仅绘制其边界。
[tri, xyz] = boundaryFacets(shp); trisurf(tri,xyz(:,1),xyz(:,2),xyz(:,3),... 'FaceColor','cyan','FaceAlpha',0.3) axis equal
alphaShape
alpha 形状,指定为 alphaShape 对象。有关详细信息,请参阅 alphaShape。
示例: shp = alphaShape(x,y) 根据 (x,y) 点坐标创建一个二维 alphaShape 对象。
shp = alphaShape(x,y)
(x,y)
alpha 形状中区域的 ID 编号,指定为介于 1 和 numRegions(shp) 之间的一个正整数标量。
alpha 形状可以包含多个较小的区域,具体取决于点集和参数。其中每个较小的区域都分配有一个唯一的 RegionID,以便于依照从最大面积或体积到最小面积或体积的顺序对这些区域进行编号。例如,考虑使用包含两个区域的三维 alpha 形状。体积较大的区域的 RegionID 为 1,较小区域的 RegionID 为 2。
示例: shp.RegionThreshold = area(shp,numRegions(shp)-2); 隐藏二维 alpha 形状 shp 中的两个最小区域。
shp.RegionThreshold = area(shp,numRegions(shp)-2);
数据类型: double
double
以矩阵形式返回的边界面。bf 的大小是 m×n,其中 m 是边界面数,n 是每个面的顶点数。
m
n
以矩阵形式返回的顶点坐标。P 的大小为 N×dim,其中 N 为 alpha 形状边界上的点数,dim 为 2 或 3(对于二维或三维 alpha 形状)。
N
dim
2
3
在 R2014b 中推出
alphaShape | plot | triangulation
plot
triangulation
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office