Algorithm 你怎么知道自己是';内部';一组三角形?

Algorithm 你怎么知道自己是';内部';一组三角形?,algorithm,graphics,geometry,computational-geometry,mesh,Algorithm,Graphics,Geometry,Computational Geometry,Mesh,如果您有一组“常规”连接三角形,例如: …如果您知道每个三角形的顶点/法线,那么什么是测试另一个点是否在三角形集中的有效方法 谢谢 从给定点开始,画一条直线。测试直线与每个三角形的交点,并计算在点的同一侧发现的所有交点。如果这个计数是奇数,你就在里面 为了简化计算,对直线使用x=x0,y=y0,并将所有内容投影到XY平面上。使用并最终检查交点的z值。从给定点开始,画一条直线。测试直线与每个三角形的交点,并计算在点的同一侧发现的所有交点。如果这个计数是奇数,你就在里面 为了简化计算,对直线使用x

如果您有一组“常规”连接三角形,例如:

…如果您知道每个三角形的顶点/法线,那么什么是测试另一个点是否在三角形集中的有效方法


谢谢

从给定点开始,画一条直线。测试直线与每个三角形的交点,并计算在点的同一侧发现的所有交点。如果这个计数是奇数,你就在里面


为了简化计算,对直线使用
x=x0
y=y0
,并将所有内容投影到
XY
平面上。使用并最终检查交点的
z
值。

从给定点开始,画一条直线。测试直线与每个三角形的交点,并计算在点的同一侧发现的所有交点。如果这个计数是奇数,你就在里面


为了简化计算,对直线使用
x=x0
y=y0
,并将所有内容投影到
XY
平面上。使用并最终检查交点的
z
值。

这是二维还是三维问题?是否总是有凸面形状(如本例中所示)或它们可以是任意形状?唯一的限制是它们将是闭合的、非相交的实体。例如,它们可以是“菜豆”或“沙漏”的形状,但始终只有一个实体。这是二维还是三维问题?是否始终具有凸面形状(如本例中所示)或它们可以是任意形状?唯一的限制是它们将是闭合的、不相交的实体。例如,它们可以是“菜豆”或“沙漏”的形状,但它总是只有一个身体。这是蛮力方法。一种更有效的光线投射方法(对于大网格,如果有足够的位置查询来分摊初始成本)将构建分层空间数据结构(BSP树、k-d树、八叉树),以在查询过程中剔除大量三角形,并显著减少光线/三角形相交测试的总数。因为这里的光线方向实际上是固定的,所以甚至可以使用xy平面上更简单的2D空间数据结构,这是蛮力方法。一种更有效的光线投射方法(对于大网格,如果有足够的位置查询来分摊初始成本)将构建分层空间数据结构(BSP树、k-d树、八叉树),以在查询过程中剔除大量三角形,并显著减少光线/三角形相交测试的总数。由于此处光线方向实际上是固定的,因此甚至可以使用xy平面中更简单的2D空间数据结构。