给定圆心:vectorA和圆周边的另一个Vector:vectorB,你怎样才能确定vectorB转换到圆周边另一个变量的更短路径:vectorC?较短的路线是顺时针还是逆时针旋转?
如果它有助于想到一个时钟。如果时间是时钟周长的随机点,例如。例如,分针位置是已知的,并且分针位置是已知的。 4.手是否需要顺时针或逆时针绕时钟的中心点旋转以到达随机点(6)?
另见:
Vec1 = Circle centre, Vec2 = mousepos, find the point on the circle between Vec1, Vec2
答案 0 :(得分:2)
只需计算三角形ABC的缠绕方向
因此,如果您计算正常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
相反或相同,因此方向无关紧要,因为两种方式的角距离相同