1.前言
布尔运算算法有多种,可以根据几何数据表达方式分为Brep布尔运算、CSG布尔运算、网格布尔运算等,而网格布尔运算又又多种,如BSP方式、八叉树方式,博主实现过Brep布尔运算、BSP和八叉树两种网格布尔运算。详细可参考博主文章。
轮廓布尔运算原理及实现思路_异或 计算轮廓-CSDN博客文章浏览阅读2.0k次,点赞2次,收藏13次。轮廓布尔运算包括以下运算:反、交、并、差、异或。一、取反一个轮廓既可以代表实体也可以代表负实体,约定轮廓逆时针时为实体轮廓,顺时针时为负实体轮廓,轮廓取反即反转轮廓方向即可。实体轮廓轮廓取反二、轮廓交轮廓交三、轮廓并轮廓并四、轮廓差轮廓差五、轮廓异或两个多边形的异或是一个多边形,其内部区域为原来两个多变性差的并六、其中取反和交是两种..._异或 计算轮廓https://blog.csdn.net/baidu_38621657/article/details/99173958
关于三维布尔运算的几点思考_三角面 brep算法-CSDN博客文章浏览阅读2.6k次。文章探讨了三维布尔运算中的三角网格运算效率提升,特别是通过BSPTree方法进行优化。作者提到,虽然BSPTree能提供精确结果,但可能导致碎三角面,可以通过记录原始ID来消除冗余。八叉树方案则以更平衡的搜索树降低复杂度,但实现更复杂。两种方法的目标是将时间复杂度从O(N)降至O(logN)。https://blog.csdn.net/baidu_38621657/article/details/130909322
八叉树CSG布尔运算_csg运算-CSDN博客文章浏览阅读668次,点赞16次,收藏21次。三角网格布尔运算有多种理论支撑实现,比如BSP网格布尔运算方法、八叉树网格布尔运算等,同样,不同的方法有其特点及适用范围。BSP网格布尔运算依赖于较为严格的实体规范表达,即参与运算的几何实体需要是闭合的、规整的,如果出现不闭合的几何实体,运算可能出错,比如对一颗网格化表达的树进行布尔就会出错,得到意想不到的造型效果。如果实体内部由有其他元素时也会出现上述问题,比如大坝内部有其他多种围挡等建造元素时。八叉树布尔运算适用性较好,缘于其较好的鲁棒性——对于不规整几何体的兼容处理能力。_csg运算https://blog.csdn.net/baidu_38621657/article/details/137840452
三维布尔运算对不规范几何数据的兼容处理-CSDN博客文章浏览阅读518次,点赞5次,收藏9次。上一篇文章谈过八叉树布尔运算,对于规范几何数据的情况是没有问题的。在实际情况中,由于几何数据来源不一,处理和生成方式不一,我们无法保证进行布尔运算的几何数据都是规范的,对于不规范情况有时候也有需求,这就需要兼容不规范数据情况,当然这种兼容不是一味的让步,而是对于存在有限的不规范数据的兼容处理。https://blog.csdn.net/baidu_38621657/article/details/142005354
布尔运算作为几何内核的核心算法之一,对基础设施的要求比较高,会充分的使用各种集刺虎几何工具算法进行算法实现,当然要解决工程问题,就避免不了采用工程手段解决一些问题,如处理精度问题(可参考如下博主文章)、数据不规范情况的兼容等等,这些问题的处理同样需要做大量的工作。学习几何算法可以在弄懂原理后进行实践,但实践不一定要一口气做出完美的方案,毕竟水滴石穿非一日之功,持续的学习和总结往往也很重要,在理论达到一定的阶段时,处理问题会方便很多。
关于float浮点值二进制存储和运算精度损失的话题_float的二进制存储和输出-CSDN博客文章浏览阅读1.1k次,点赞8次,收藏18次。浮点值的存储、运算都可能会带来精度损失,了解精度损失背后的机制原因方便我们更好的了解什么情况下会发生精度损失、什么情况下精度损失较大,以及思考怎么避免或减少精度损失。_float的二进制存储和输出https://blog.csdn.net/baidu_38621657/article/details/141027014
曲面构件造型复杂,几何数据较为复杂,对其进行布尔操作是检验布尔运算算法的重要实践,当然也是对背后的基础设施的使用和检验。
2.八叉树布尔运算效果
2.1 整体概览
2.2 原始构件
2.3 布尔交
2.4 布尔减(A-B)
2.5 布尔减(B-A)
2.6 布尔并(A∪B)
3. 写在后面
博文如上;图形几何、数据处理、并行计算相关研究和研发,公众号:geometrylib,欢迎交流