确定圆上的旋转方向/朝向/可变点

时间:2014-09-19 01:53:56

标签: vector geometry 2d trigonometry

给定圆心:vectorA和圆周边的另一个Vector:vectorB,你怎样才能确定vectorB转换到圆周边另一个变量的更短路径:vectorC?较短的路线是顺时针还是逆时针旋转?

如果它有助于想到一个时钟。如果时间是时钟周长的随机点,例如。例如,分针位置是已知的,并且分针位置是已知的。 4.手是否需要顺时针或逆时针绕时钟的中心点旋转以到达随机点(6)?

另见:
Vec1 = Circle centre, Vec2 = mousepos, find the point on the circle between Vec1, Vec2

1 个答案:

答案 0 :(得分:2)

只需计算三角形ABC的缠绕方向

circle point dir

因此,如果您计算正常n=(B-A)x(C-B),其中x是交叉产品,则n.z符号确定方向。

n.z = ((B.x-A.x)*(C.y-B.y)) - ((B.y-A.y)*(C.x-B.x))
if (n.z<0.0) dir=CW else dir=CCW;

如果您的坐标系不同,那么您需要的只是( CW 表示顺时针方向, CCW 逆时针方向)粗略

<强> [注释]

if (n.z==0)然后点B,C相反或相同,因此方向无关紧要,因为两种方式的角距离相同