//求向量a与b的夹角
F32 angle_between(const Vector2& a, const Vector2& b) { Vector2 an = a; Vector2 bn = b; an.normVec(); //单位化 bn.normVec(); F32 cosine = an * bn; //点积 F32 angle = (cosine >= 1.0f) ? 0.0f : (cosine <= -1.0f) ? F_PI : acos(cosine); return angle; } // 判断向量a与b是否平行 BOOL are_parallel(const Vector2 &a, const Vector2 &b, float epsilon) { Vector2 an = a; Vector2 bn = b; an.normVec(); bn.normVec(); F32 dot = an * bn; if ( (1.0f - fabs(dot)) < epsilon) { return TRUE; } return FALSE; }