GIS基础算法其一-----叉积判断折线走向(拐向)原理证明
矢量叉积:设矢量P=(x1, y1), Q=(x2, y2), 则矢量叉积定义为由(0,0)、p1、p2和p1p2所组成的平行四边形的带符号面积,即P✖️Q=x1*y2 - x2*y1,其结果是一个标量。并且PXQ=-1(QXP),和PX(-Q) = -(PXQ)。叉积的一个非常重要的性质是可以通过它的符号判断两个矢量互相之前的顺逆时针关系:
若PXQ>0,则P在Q的顺时针方向。
若PXQ<0,则P在Q的逆时针方向。
若PXQ=0,则P与Q共线,但可能同向也可能反向。
这段网上很多,但是都没说明为什么,这里证明一下。
如上图所示,角a显然小于角b,所以tana<tanb,也就是y1/x1<y2/x2,所以 x1*y2 - x2*y1>0.