计算几何初步-三点顺序
三点顺序
给出不共线的三个点A,B,C的坐标,推断A,B,C是顺时针给出的还是逆时针给出的?
利用矢量叉积推断是逆时针还是顺时针。
设矢量P = ( x1 , y1 ),Q = ( x2 , y2 ) ,则P,Q矢量叉积定义为 P × Q = x1 * y2 - x2 * y1,也就是 |P| * |Q| * sin(a),即P,Q张成的平行四边形的面积。a的取值不同,会带来 P × Q的符号不同,从而能够通过叉积的符号推断两矢量相互之间的顺逆时针关系:
1.若 P × Q > 0 ( 0 < a < π ) , 则P在Q的顺时针方向。
2.若 P × Q < 0 ( π < a < 2π ) , 则P在Q的逆时针方向。
3.若 P × Q = 0 ( a = 0 或 a = π ) , 则P与Q共线,但可能同向也可能反向。
由此,也可以判断点在直线的哪一侧,直线与直线是否相交问题。