这个我们就用到了之前笔记1提到过的叉乘:
这里做一个小的复习,叉乘我们是向量叉乘 ,遵循我们的右手定则,我们大拇指的朝向是z轴的方向,其他手指螺旋是两个向量的想对方向螺旋。
如下图 我们要判断 Q点是否在三角形里面,我们可以首先确定三角形的向量。
我首先创建了 向量 P1P2 向量P2P0 向量P0P1 作为我们的三角形向量,如何创建可以看我们自己习惯,但是要注意向量的方向。
首先我们可以先判断 向量P1P2和向量P1Q的关系,然后 我们通过叉乘 发现我们的大拇指指向屏幕外侧,说明我们的z值为正数,Q点在我们向量P1P2的左侧;
同理 我们判断向量P1P0和向量P1Q的关系,发现 叉乘后的值也是正数,说明 Q也在向量P1P0左侧。
但是我们在判断向量P2P0的时候,叉乘的结果为负数,说明Q在P2P0的右侧。
综上所述 这个Q 点在我们三角形外部。
总结以下,其实是我们如果在规定向量方向为三角形的逆时针方向时候,如果叉积的结果是全部在向量的左侧,这个点才在我们三角形内部,如果规定向量的方向为三角形的顺时针方向的时候,叉积结果如果全部在向量的右侧,这个点也可以被判断为我们三角形内部。
如果说出现边界上的情况(如下图),可以通过自己来定义这个点是否要进行处理: