mesh - 确定非凸多面体的凹度
问题描述
假设有一个非凸的 3D 多面体P,表示为网格。确定所有凹面的集合的最佳算法是什么?
我认为的第一个(可能是微不足道的)答案可能是计算多面体P的凸包C,然后将不合理的差异C - P划分为连通分量。我能走在正确的方向吗?如果是,您如何计算网格之间的“差异”?是否有一些 CGAL 函数可用于“减去”网格并获取连接的组件。
解决方案
是的,你可以,你应该看看 Nef_polyhedron_3 :https://doc.cgal.org/latest/Nef_3/classCGAL_1_1Nef__polyhedron__3.html
基本上你将你的网格和它的凸壳网格转换为 nef。从那里您可以访问布尔运算,包括差异。所以你可以得到你想要的,然后把它转换回多面体。
推荐阅读
- android - 插入到 SQLite android 不起作用
- reactjs - Express / NextJS - 单个快速路由中的多个目录
- xamarin - 使用 MvvmCross 处理 CancellationToken 激活的 ViewModel 销毁的最佳方法是什么?
- python - Keras 和 Conv1D 问题的输入形状
- python - 脚本中的 Box API OAuth2.0
- visual-studio-code - Visual Studio 代码更改 cli 路径
- reactjs - 反应路由器路径和嵌套路径不起作用
- vim - pylint 的最大行长问题
- bash - 当一些文件可能丢失时,tar 压缩文件
- c# - 在 ViewModel 构造函数之外更改时,ContentControl 视图未更新