【发布时间】:2011-10-06 09:24:48
【问题描述】:
我正在为 iOS 设备编写一些触摸输入代码,需要确定滑动的移动相对于屏幕中心是顺时针还是逆时针。
使用触摸的position 和deltaPosition,我可以使用点积计算从屏幕中心到这些点的向量之间的角度,但这并没有给我一个符号 em> 角度来决定它是否是CW。
如何判断滑动已围绕中心移动的方向?
【问题讨论】:
我正在为 iOS 设备编写一些触摸输入代码,需要确定滑动的移动相对于屏幕中心是顺时针还是逆时针。
使用触摸的position 和deltaPosition,我可以使用点积计算从屏幕中心到这些点的向量之间的角度,但这并没有给我一个符号 em> 角度来决定它是否是CW。
如何判断滑动已围绕中心移动的方向?
【问题讨论】:
让 A 表示滑动矢量,B 表示从滑动开始到屏幕中心的矢量。然后可以计算A和B的分量的行列式:
| A.x A.y |
| B.x B.y |
= A.x * B.y - B.x * A.y
行列式的符号会告诉你B是指向A的右边还是左边。
正如@Jeremy W. Sherman 正确指出的那样,哪个符号对应哪个方向取决于屏幕坐标系的布局方式。如果 x 轴向右,y 轴向下,正表示 CW,负表示 CCW(如果我的心算正确的话)。零始终意味着直接朝向或直接远离中心的运动。
【讨论】: