Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mfc 如何确定鼠标是顺时针还是逆时针移动?_Mfc_Mouse_Rotation_Gesture_Onmousemove - Fatal编程技术网

Mfc 如何确定鼠标是顺时针还是逆时针移动?

Mfc 如何确定鼠标是顺时针还是逆时针移动?,mfc,mouse,rotation,gesture,onmousemove,Mfc,Mouse,Rotation,Gesture,Onmousemove,我有一个MFC应用程序,用户必须在一个圆圈周围移动鼠标并拖动鼠标。我需要在鼠标拖动“旋转”期间检索度数,我需要知道是顺时针还是逆时针 首先,为了确定旋转方向,我比较了当前鼠标位置和用户单击开始拖动的鼠标位置之间的x坐标。在用户旋转超过180度之前,该功能一直运行良好 如何处理圆圈的另一半?阅读。计算X和Y矢量之间的叉积(与起始点的差值)将始终可靠地给出旋转方向。您需要至少三个有序点来确定某人随时间是顺时针还是逆时针移动。因为只有两个点,所以不清楚(例如)某人是旋转了90度还是-270度。所以简单

我有一个MFC应用程序,用户必须在一个圆圈周围移动鼠标并拖动鼠标。我需要在鼠标拖动“旋转”期间检索度数,我需要知道是顺时针还是逆时针

首先,为了确定旋转方向,我比较了当前鼠标位置和用户单击开始拖动的鼠标位置之间的x坐标。在用户旋转超过180度之前,该功能一直运行良好

如何处理圆圈的另一半?

阅读。计算X和Y矢量之间的叉积(与起始点的差值)将始终可靠地给出旋转方向。

您需要至少三个有序点来确定某人随时间是顺时针还是逆时针移动。因为只有两个点,所以不清楚(例如)某人是旋转了90度还是-270度。所以简单地取起点和终点的叉积是行不通的

尝试在拖动过程中对鼠标采样以获取所需的其他信息,然后在每对连续点之间进行增量叉积。这会告诉你你想知道的。但是,您需要足够快的采样速度,以确保不会发生超过180度的旋转;否则,您将再次陷入模棱两可的境地。

这些可能会对您有所帮助

下面是一个识别手势的简单示例(虽然是flash,但想法很重要)