我的问题就要到了,因为我不能识别一个下陷三角形VS实际应该被砍掉的耳朵。

我怎样才能把凸和凹三角形之间的差异?

有帮助吗?

解决方案

三角形不能凹。你的意思是你的网格凹?


我没有意识到你在谈论一个特定的技术。做了一些研究之后,我想我明白你的问题,足以尝试回答。

假设你正在穿越你的多边形顶点以逆时针方向。如果我们在这个顺序遍历它们,多边形的身体总是会在左边。我们正在考虑的三个顶点:的 A 下,的下,和 C 即可。假设我们从出射的光线的 A 通过的即可。如果<强> C 是该射线的左侧,那么这是一个结构良好的三角形是该多边形的一部分。如果<强> C 是该射线的右侧,那么它表示负的空间。

行,因此让我们创建矢量 v (其为的 A →的)和瓦特(其为的→<强> C )。此外,让我们构建的 V',这是 v 但旋转了90度CCW。 V' = <-v [Y],V [X]>

为了找出是否<强> C 是要的左侧或右侧的 v ,我们只需要测量之间的角度 V'瓦特。如果它是内(0,90)或(270,360),那么它的左边。如果是内(90,270),那么它的右边。这很方便,因为这完全对应于分别COS(Θ)<0,其中COS(Θ)> 0,并且其中。因此,如果COS(Θ)> 0,则C是到左边,并且如果COS(Θ)<0,则C是右侧。

我们可以使用点产品来帮助我们确定COS(Θ)。请记住,COS(Θ)=( V '瓦特)/(MAG( V')⋅MAG(瓦特))。然而,我们并不真正需要COS(Θ),我们只需要签字(COS(Θ))。由于MAG( V')和MAG(瓦特)必须都为正数,我们可以忽略它们。因此,如果 V'瓦特> 0,则C是向左和三个点对应于一个三角形是该多边形的一部分。在另一方面,如果 V'瓦特 <0,则C是向右和三个点对应于负空间的多边形之外。

我还没有真正尝试过这种超越了简单的测试,但我相信它(或接近它)会工作。

呵呵,和其他人谁(像我)从来没有听说过这种技术,你可以读到它的此处

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top