【发布时间】:2021-04-13 08:27:08
【问题描述】:
如何确定不完整(即非防水)修剪的凸度?即使对于不完整的网格,凸性也是明确定义的:如果不完整的修剪 T 可以完成为凸修剪,则 T 是凸的。 (我使用术语“不完整”而不是“非防水”,因为 a. 在我的情况下,它是现有修剪的子集和 b. 因为“非防水”包括小错误/浮点不准确的情况,而我'我在谈论丢失的三角形补丁,所以我认为“不完整”更能唤起人们的回忆。)
我尝试过简单地使用Trimesh.is_convex,但对于不完整的修剪总是返回False。我考虑过确定点集的凸包并检查它是否具有与不完整修剪相同的点数,但这太松懈了。 (作为一个二维的例子,想想字母Z:它是一个不完整的多边形,按照上面的定义它是非凸的。但是凸包的点与原始点相同。)
我正在考虑计算不完整三角网格中所有三角形及其凸包中所有三角形的哈希值的方法,然后检查是否包含。但是有没有概念上更简单/更有效的方法?
【问题讨论】:
-
如果不完整的修剪 T 可以完成为凸修剪,则 T 是凸的。 - 听起来不错,但从我的脑海中浮现出至少两个问题:1)你能做到这样的完成吗? 2) 是否有多种方法可以完成这样的网格,有些是凸的,有些是凹的?
-
@tevemadar Re 1) 我不想构造它,这只是为了定义。即便如此,我也很难找到一个凸包不会完成的例子。 2)当然,只要孔足够大。我的定义只要求一个复杂的完成,T 是复杂的。