我想知道是否有一些教程或指南来理解和实现3D环境中的Triangle-Triangle相交测试。 (我不需要知道相交的确切位置,而只需知道有相交的地方)
我打算按照理论pdf来实现它,但是我很陷于
计算三角形2的平面方程。
如果三角形1的所有点都在同一侧,则视为微不足道。
计算三角形1的平面方程。
如果三角形2的所有点都在同一侧,则视为微不足道。
计算相交线并投影到最大轴上。
计算每个三角形的间隔。
相交间隔。
本指南的第5点。我真的不知道在问什么(所有5,6和7)。 XD
由于我对数学的知识不高(嗯,据我所知,大学里的几次考试已经给了我(我是原始的XD程序员)),请尽量简化我。 :D(我尝试在Google上进行搜索,但是大多数链接指向的是4-5页的公式,这些公式我不是很想知道,我也不知道。)
谢谢您的帮助
最佳答案
你说:
我想知道那里是否有
一些教程或指南以了解
并实现一个Triangle-Triangle
3D环境中的路口测试。
然后你说:
大多数链接指向4-5
完全没有公式的页面
知道
我注意到,这两个陈述完全矛盾。那是什么呢?您是否想了解三角相交的工作原理,还是只想实现一个可行的实现却不了解呢?
并非所有这些网页都充满了不必要的数学运算。所有数学都是理解交集算法如何工作所必需的。从头开始,学习所有功能。
一旦您知道单词的意思,就可以轻松理解步骤5、6和7。相交线是两个平面相交所形成的线。每个三角形都位于一个平面中。有以下三种情况:
平面平行且不相交。三角形显然不相交。
这些飞机是同一架飞机。三角形可能会相交,也可能不会相交。
这些平面是在一条直线上相遇的两个不同平面。如果三角形相交,它们显然必须在该线上相交。
假设我们处于第三种情况。计算包含在第一个三角形中的相交线的线段。计算相交线在第二个三角形中的线段。现在的问题是“这些部分重叠吗?”
通过将线段投影到方便的轴上,然后查看该轴上的线段是否重叠,可以解决该问题。基本上,它的工作原理是这样的:假设您在线段上照亮了光线,以使它们的阴影落在轴上。如果轴上的阴影相交,则线段必须相交。如果轴上的阴影之间存在间隙,那么显然线段之间必须存在间隙,因此三角形不相交。
如果您想了解它是如何工作的,那么您将需要了解所有这些知识,即可以解决平面如何相交以及如何投影到轴上的所有代数。这都是必要的。而且所有这些都是基本的构建基块,其中将构建更复杂的转换,投影等,因此,如果您想走得更远,请彻底了解基础知识。