是否有识别多边形上完全多余的三角形的好方法?

问题描述 投票:0回答:1

我正在尝试为 C++ 编写一个函数,该函数可以检查两个多边形的并集并消除由于浮点错误或其他各种小故障原因而未被正确剔除的任何剩余面。

是否有一种好方法可以识别完全共面并包含在 3D 多边形的其他面中的 3D 三角形,因此完全多余?

在另一个 TRIANGLE 中检测一个三角形很容易,但我正在寻找一种情况,我可以检测到一个冗余三角形,该三角形可能交叉并包含几个形成平面的三角形。

例如上图,假设所有的顶点都在一个平面内,那么红色三角形就完全没有必要了,只会导致z-fighting。然而,我似乎无法想出一种涵盖所有基础的好技术,可以说“可以删除红色的”。

有什么建议吗?

math 3d polygon triangulation 3d-modelling
1个回答
0
投票

在这里发布我想出的解决方案,以防这个问题可以帮助任何遇到类似问题的人。我所做的是:

  1. 识别同一平面内的所有三角形
  2. 沿着那个平面将它们旋转成二维三角形(这一步是为了减少浮点精度问题并减少下一步所需的数学)
  3. 如果任何给定的三角形在该列表中的其他三角形内都有所有三个点,则它是多余的并且可以删除。
© www.soinside.com 2019 - 2024. All rights reserved.