Geometry 如何查找三维点是否与三维三角形位于同一曲面内

Geometry 如何查找三维点是否与三维三角形位于同一曲面内,geometry,Geometry,假设我们有一个三角形,其中每个点用3个坐标表示。我们如何判断一个点(也用3个坐标表示)是否不在三角形内部,而是在与三角形相同的曲面上?基本上,如果点到平面的距离为零 这是我第一次在谷歌上找到三角形点,我们可以构建向量 AB = B - A AC = C - A 和使用叉积的法向量N N = AB x AC 要检查点p是否属于ABC平面,请计算点积 AP = P - A dp = AP.dot.N dp对于平面中的点等于零(使用一些公差来补偿数值误差) 要查找点是否位于三角形外部: 选择正常

假设我们有一个三角形,其中每个点用3个坐标表示。我们如何判断一个点(也用3个坐标表示)是否不在三角形内部,而是在与三角形相同的曲面上?

基本上,如果点到平面的距离为零


这是我第一次在谷歌上找到三角形点,我们可以构建向量

AB = B - A
AC = C - A
和使用叉积的法向量
N

N = AB x AC
要检查点p是否属于ABC平面,请计算点积

AP = P - A
dp = AP.dot.N
dp
对于平面中的点等于零(使用一些公差来补偿数值误差)

要查找点是否位于三角形外部:
选择正常
N
(如z分量)的任何非零分量
仅计算此组件的叉积

AB x AP  (here we need only (AB.x*AP.y-AB.y*AP.x) to get z-component of result)
BC x BP
CA x CP

如果结果的所有符号都相等(正或负)-
p
在内部,如果符号不同-
p
在外部。

我投票结束这个问题,因为它应该打开或重新格式化为编程问题。