【发布时间】:2017-12-26 07:33:57
【问题描述】:
我正在使用 CGAL 的 AABB 树为我的项目执行点位置查询。我有一个 3D 笛卡尔网格和一个浸入网格内的表面。我需要找出网格的哪些元素在外部/内部/被表面切割。为此,我投射了一条 Ray 并找到单元格每个角的交叉点数,并检查它们是在内部还是外部。
只要网格的角与表面上的节点不重合,这就会正常工作。但是,当单元格的角点与表面上的节点重合时,我会得到垃圾结果。 Erroneous result from CGAL 中显示了一种这样的场景。
我尝试使用Simple_cartesian<double> 和Exact_predicates_inexact_constructions_kernel,但情况没有改善。
看来CGAL对浮点运算太敏感了。
如何解决这个问题?
【问题讨论】: