我有三个向量 V1、V2 和 V3。它们的原点位于轴的原点上。当我从 V1 逆时针移动到 V2 时,如何确定 V3 是否在 V1 和 V2 之间?
替代文字 http://www.freeimagehosting.net/uploads/1448ea8896.jpg
无法通过获取它们的角度并评估这些条件(伪代码)来完成:
if angle(V3) > angle(V1) && angle(V3) < angle(V2)
printf("V3 is between V1 and V2")
else
printf("out of the interval")
要查看它的缺陷,假设angle
函数给出的角度在 [-pi pi] 的范围内。因此,如果 angle(V1) = 120 (in degree), angle(V2) = -130 and angle(V3) = 150 那么答案(根据上面的代码)是“超出区间”,尽管如果你四处走动从 V1 到 V2 逆时针,它在它们之间。
您可能会建议将 2*pi 添加到 angle(V2) 或类似的东西,但我已经尝试过这样的事情并且它不起作用。
我正在用 MATLAB 编程。
编辑 1:它是 2D 的。