判断点在三角形里面还是外面
三维空间中的一个平面上有A、B、C、P四个点。
连接A、B、C三个点形成一个三角形ABC。
判断点P是否在三角形ABC内。
方法一:一次线性方程
A、B、C 、P四个点。
AB方程为f1;BC方程为f2;AC方程为f3。
f1(x,y)=a1*x + b1*y + c1
f2(x,y)=a2*x + b2*y + c2
f3(x,y)=a3*x + b3*y + c3
分别计算:
f1(C) X f1(P) 、
f2(A) X f2(P) 、
f3(B) X f3(P)。
三个式子结果`同号`。(千万别用子式子相乘>0的方式)
这说明点P在ABC三角形内;否则点P在三角形ABC外面。
方法二:向量叉乘
首先先理解叉乘的意义,即得到两个向量平面的的一个法向量。注:向量求叉乘时,是按小于180的角算的。
可以通过右手法则判断向量在左还是在右:
aXb>0 b在a左侧
aXb<0 b在a右侧
运用上面这个性质。
叉乘可以判断点在多边形的内外:
AP X AB、
BP X BC、
CP X CA
均同向(即要么都>0,要么都<0)则点P在三角形ABC内部。
否则点P在三角形ABC外面。
千万别用 子式相乘>0的方式。
补充:
判断是否在三角形ABC边上需要对单个计算结果分析对比。