图像缩略图

快速alpha hulls(3D中的alpha形状;启用栏杆)

版本1.8.0.0(3.23 kB) 迪伦穆尔
计算一组点的外壳(外部和内部)。

2K下载

更新2017年8月29日

查看许可证

也可以看看http://www.dylan-muir.com/articles/alpha_hulls/
用法:[Trihull,Vboutside,Vbinside] = Alphahull(MFPoints,Falpharadius,Tridelaunay)

此功能计算一组点的alpha形状/ alpha船体;外部船体以及内部空隙。该函数使用MATLAB示例结构,以便此代码在运行MATLAB并行计算工具箱的多个实例的计算机上快速运行。

该算法基于QHull和Delaunay的四个点的四面体。它将返回一个船体三角测量,并忽略仅通过行连接的点。

'mfPoints'是一个Nx3矩阵,其中每一行定义3空间中的一个点。AlphaHull将在'mfPoints'中找到集合点的船体。

'Falpharadius'是标量距,定义了alpha船体的参数alpha。该距离被解释为将“滚动”表面的球体的半径,与球体的边界接触在“MFPoints”中的一个点。划线的三角形的三角形,其中Spere可以在没有交叉的情况下装配任何其他点都将形成α船体的一部分。

可选的参数'Tridelaunay'可用于提供该组点的DELAUNARY四偏移,如果事先已知。

'trihull'将是一个三角测量,其中三角形的三角形落在α船体表面上,或在点集中的alpha空隙(a孔)的内表面上。布尔vectors'vboutside'和'vbinside'定义哪行'trihull'定义“外部”和“内部”船体。Alphahull返回的表面将被凸出到空间参数alpha。

'triHull'将是一个Tx3矩阵,其中每一行['p1' 'p2' 'p3']定义了一个alpha表面上的三角形。索引'pn'指的是'mfPoints'中的行,因此定义了包含三个原始点的三角形。

*警告和改善房间*
标记“内部”和“外部”三角形的方法并不理想。它通过决定三角形的正常情况,从远离点云的其余部分的方向,点在点设置质心的方向上指定。更好的技术可能是沿着表面迭代,在你去的时候始终如一地标记三角形。如果你改进了这个,我很乐意听到它。

引用

迪伦梅尔(2021)。快速alpha hulls(3D中的alpha形状;启用栏杆)(//www.tianjin-qmedu.com/matlabcentral/fileexchange/32725-fast-alpha-hulls-alpha-shapes-in-3d-parfor-enabled),Matlab中央文件交换。检索到

MATLAB版本兼容性
使用R2008B创建
与任何版本兼容
平台兼容性
窗户 苹果系统 Linux.

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!