判断一个点是否在三角形内部,可以用两种简洁的方法(参阅编程之美)
A、B、C组成三角形,D是一个点,判断D是否在三角形内部(包括边上)。
1.判断三角形ABC的面积是否与 ABD + BCD + CDA的面积总和
2.如果D在ABC内部,则以A为起点,逆时针方向转动,D在AB、BC、CA的左边。可以通过向量的叉乘进行判断。如果向量AB X 向量AD、向量BC X 向量CD和向量CA X 向量CD都不小于零,则点D在三角形内部
具体代码见 git: https://gist.github.com/52c0e95ebc8e1e356012.git