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

标签 mfc mouse rotation gesture onmousemove

我有一个 MFC 应用程序,其中用户必须通过拖动运动围绕圆环移动鼠标。我需要在鼠标拖动“旋转”期间检索度数,我需要知道它是顺时针还是逆时针。

首先,为了确定旋转方向,我比较了当前鼠标位置和用户单击以启动拖动的鼠标位置之间的 x 坐标。在用户旋转超过 180 度之前,这很好用。

我该如何处理圆的另一半?

最佳答案

您至少需要三个有序点来确定某人随着时间的推移是顺时针还是逆时针移动。只有两点,(例如)有人旋转了 90 度还是 -270 度并不明显。所以简单地取开始和结束的叉积是行不通的。

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

关于mfc - 如何确定鼠标是顺时针还是逆时针移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649177/

相关文章:

c++ - 如何实现CEditListCtrl

c++ - 以编程方式在 MFC 中设置单选按钮状态

c++ - MFC 自动建议文本框(如 Windows“开始”->“运行”对话框)

windows - 使用注册表的适用于 Windows 的 Synaptics 自定义手势

java - 根据比例因子转换鼠标坐标 - java swing

python - 将由 4 个元组组成的矩形向左或向右旋转

c# - 单元测试现有的 UI 代码

c++ - 使用鼠标进行非鼠标输入

iphone - 原力风景 iOS 6

c - C语言循环6位