检查点(x0,y0,z0)是否位于Matlab

时间:2017-02-18 23:30:13

标签: matlab tetrahedra

我有一个由4点xi,yi,zi(i = 1到4)定义的四面体

为了检查任意点x0,y0,z0是否在四面体内部,我采用体积路线,即我用x0,y0,z0替换其中一个点并获得四面体的体积。我说如果所有4个计算的体积都是正数,则它位于四面体中。 有更好的方法吗?

计算详情here

1 个答案:

答案 0 :(得分:0)

要知道一个点是否在四面体内部,最佳/更稳健的方法是计算4个平面中每个平面的哪一侧,并将其与已知内部的点进行比较。

一步一步:

  1. 计算四面体的几何中心
  2. ax+by+cz+d=0的形式计算4个平面方程中的每一个。 (即从点计算a,b,c,d)。
  3. 在每个平面方程(x,y,z)中插入四面体的几何中心,并存储结果的符号(在一侧为正,在另一侧为负,如果该点位于平面,则为零)
  4. 在每个平面方程中插入所需的点。如果结果的符号对于所有4与几何中心相同,则它在等式