设p1=(x1,y1)
p2=(x2,y2)
p3=(x3,y3)
求向量
p12=(x2-x1,y2-y1)
p23=(x3-x2,y3-y2)则当 p12与p23的叉乘(向量积)
p12 x p23 = (x2-x1)*(y3-y2)-(y2-y1)*(x3-x2)
为正时,p1-p2-p3 路径的走向为逆时针,
为负时,p1-p2-p3 走向为顺时针,
为零时,p1-p2-p3 所走的方向不变,亦即三点在一直线上。
可以应用在判断三点确定圆弧,圆弧是逆时针画,还是顺势针画。
求三点的夹角
利用向量的知识
A(a,b),B(c,d)是向量
cosA(A,B)=(A*B)/(|A|*|B|)= (a*c+b*d)/(sqrt(a*a+b*b)*sqrt(c*c+d*d))
A=acos(cosA)/M_PI*180
M_PI在math.h头文件中注释掉了。#define M_PI 3.14159265358979323846
注意点在计算中误差值比如cosA = 0.999999998 不是1 在A=acos(cosA)/M_PI*180得到的值是近0的1.2e-6 但是不是0。
Windows 默认是顺时针方向?