| 分类: 物理引擎 |
假定四面体的四个顶点为:
V1 = (x1, y1, z1)
V2 = (x2, y2, z2)
V3 = (x3, y3, z3)
V4 = (x4, y4, z4)
你测试的空间点为:
P = (x, y, z)
如果下面的5个行列式有相同的符号,则点P在四面体内:
需要注意的一些情况:
- 如果正好 D0=0, 则该四面体是退化的四面体(比如退化成三角形,此时四点共面)。
- 如果 Di=0(i 不等于0),则P位于四面体的边界面i上 (边界面i是指和Vi相对应的其它三个顶点形成的面)。
- 如果Di的符号和D0不同,则Di位于边界面i的外边。
- 如果所有Di的符号都和D0相同,则P 位于边界面i之内(在四个边界面内,就是在四面体之内)。
- 等式D0 = D1+D2+D3+D4成立。
- 这个公式能够扩展到任何维的单纯形 (在2D情况下是三角形,在3D情况下是四面体)。
- 注意:bi = Di/D0 就是通常的重心坐标。
- 注意:比较Di 和D0的符号仅是判定P和Vi是否在边界面i的同一边。

加载中…