Open Cascade 7.7.0 新功能:模拟三维扫描点云-BRepLib_PointCloudShape
转载请注明原文链接:https://www.cnblogs.com/mechanicoder/p/16867753.html
1. 简介
OCC官方在2022年10月3日发布 7.7 Beta 版,并于今天2022年11月7日正式发布 Open Cascade 7.7.0 版本,其中一个更新为:一个用于生成拓扑模型上的点集的工具方法。
- 根据设定的点集密度值自动生成点集;
- 根据模型三角形网格顶点生成。[文档特别注明该方法非线程安全]
2. 测试效果
使用三个模型进行测试,效果如下:
图1:模型1. 正方体,边长为10mm, 指定距离 设置为 2mm
图2:模型1. 正方体,将 指定距离 设置为 20mm, 按密度生成
图3:模型2. nist_ctc_05,模型来自 NIST, 按密度生成
图4:模型2. nist_ctc_05, Use Triangulation 按三角形网格顶点生成
图5:模型3. Schenkel,模型来自 FreeCAD, 按密度生成
3. 功能详解
通过以上图示,可进一步理解其具体功能是在模型周围指定距离内以某种随机算法生成点集,输入参数包括:模型、指定距离、指定密度值、是否按三角形网格顶点生成以及计算精度。
当按密度生成 时,需指定密度值;此时生成的点集接近均匀,但生成原理还有待进一步探究;如上图1所示。
当按三角形网格顶点生成 时,将使用模型的显示网格顶点生成点集,如上图4所示。此时不同的指定距离所得的点集完全相同,据此可以推测点集由网格顶点直接生成。不同指定距离的生成效果如下:
因此可以推测,对已显示模型(已具有三角网格模型)生成点集时,效率将非常快。
4. 代码
该工具 BRepLib_PointCloudShape 是一个抽象类,但只需要实现一个接收生成点结果的接口即可:
最后,仍有几个疑问需要解决,随机生成点算法原理是什么、随机距离的原理是什么?当然最重要的是该工具的具体应用场景是什么?
对此感兴趣的同学可一起交流,本文源代码地址
。参考资料
1. 官方博客:
2. 用户文档:
3. Open Cascade 7.7.0 Beta 源代码:
转载请注明原文链接:https://www.cnblogs.com/mechanicoder/p/16867753.html