二维向量叉乘公式a(x1,y1),b(x2,y2),则a×b=(x1y2-x2y1)
设有向线段AB,两端点A(xa,ya),B(xb,yb)
另一点C(xc,yc)
floatf = (xb - xa) * (yc - ya) - (xc - xa) * (yb - ya);
if(f> 0)
点C位于有向线段AB的左侧
elseif(f == 0)
点C位于有向线段AB上(也有可能在延长线上)
else
点C位于有向线段AB的右侧
沿着三角形的边按顺时针方向走,判断该点是否在每条边的右边(这可以通过叉乘判断),如果该点在每条边的右边,则在三角形内,否则在三角形外。这个算法只用到了三次叉乘,没有除法运算和三角函数、开根号等运算,所以效率很高,而且精度很高(没有浮点误差)。