我有一个MFC应用程序,用户必须在一个圆形会议周围移动鼠标,拖动一个mouvement.我需要在鼠标拖动"旋转"期间检索度数,我需要知道它是顺时针还是逆时针.
首先,为了确定旋转方向,我正在比较当前鼠标位置和用户单击以启动拖动的鼠标位置之间的x坐标.这很有效,直到用户旋转超过180度.
我该如何处理圆圈的另一半?
您需要至少三个有序点来确定某人是否正在顺时针或逆时针移动.只有两点,(例如)某人是否旋转了90度或-270度并不明显.因此,简单地采用开始和结束的交叉产品是行不通的.
在拖动过程中尝试对鼠标进行采样,以获得所需的其他信息,然后在每对连续点之间采用增量交叉积.那会告诉你你想知道什么.但是,您需要足够快地采样,以免发生超过180度的旋转 ; 否则你会再次陷入模棱两可的境地.