C++ 如何提高鼠标移动的精度

C++ 如何提高鼠标移动的精度,c++,qt,3d,mouse,C++,Qt,3d,Mouse,操作系统::windows xp sp3 Qt::4.6 我正在玩一些3D的东西,需要实现鼠标移动。我尝试使用Qt mouseMoveEvent,但发现效果不好,因为移动鼠标时mouseMoveEvent无法处理每个像素。我需要能记录每一个运动像素的东西。 搜索解决方案我检查了Qt在线文档并找到了QCursor类及其成员pos() 问题:QCursor::pos()是否注册移动中的每个像素?是否有更好的方法来精确处理3d中的摄影机wiew(我没有使用openGL,在painter中构建引擎(这是

操作系统::windows xp sp3 Qt::4.6

我正在玩一些3D的东西,需要实现鼠标移动。我尝试使用Qt mouseMoveEvent,但发现效果不好,因为移动鼠标时mouseMoveEvent无法处理每个像素。我需要能记录每一个运动像素的东西。 搜索解决方案我检查了Qt在线文档并找到了QCursor类及其成员pos()


问题:QCursor::pos()是否注册移动中的每个像素?是否有更好的方法来精确处理3d中的摄影机wiew(我没有使用openGL,在painter中构建引擎(这是为了好玩和好玩))?

不,鼠标可能一次移动几个像素。
如果你需要某件事的中间点,那么计算它们。计算鼠标两个位置之间直线上的所有点。我仍然不清楚您为什么需要这些点,但这应该会有所帮助。

不,鼠标可能一次移动几个像素。
如果你需要某件事的中间点,那么计算它们。计算鼠标两个位置之间直线上的所有点。我仍然不清楚您为什么需要这些分数,但这应该会有所帮助。

这很可能与Qt无关,但与您的鼠标轮询率有关。您可能想参考上的这篇内容丰富的博文。

这很可能与Qt无关,但与您的鼠标轮询率有关。您可能想参考上的这篇内容丰富的博文。

不久前,我遇到了类似的问题(我没有使用QT)。您的系统没有精确的信息

我所做的是计算鼠标位置的变化(dx,dy),并使用这些信息移动相机。在许多框架中,当您通过事件(例如SDL)获得信息时,不必计算(dx,dy)

或者,您可以计算位置变化,然后在当前和以前的鼠标位置之间插入位置-然后您可以使用这些位置移动相机


如果要在屏幕上绘制鼠标移动,也会遇到同样的问题。然后可以使用Bresenham的算法在两个给定点之间生成像素

不久前,我遇到了类似的问题(我没有使用QT)。您的系统没有精确的信息

我所做的是计算鼠标位置的变化(dx,dy),并使用这些信息移动相机。在许多框架中,当您通过事件(例如SDL)获得信息时,不必计算(dx,dy)

或者,您可以计算位置变化,然后在当前和以前的鼠标位置之间插入位置-然后您可以使用这些位置移动相机


如果要在屏幕上绘制鼠标移动,也会遇到同样的问题。然后,您可以使用Bresenham算法在两个给定点之间生成像素。不,QCursor不提供该信息,因为它没有提供该信息的信号。您必须显式查询其位置,并且在mouseMoveEvent中这样做会再次限制精度。底层窗口系统无法提供这种精度。就像其他人所说的,只需处理任意的宽运动或自己计算中间点。

不,QCursor不提供该信息,因为它没有提供该信息的信号。您必须显式查询其位置,并且在mouseMoveEvent中这样做会再次限制精度。底层窗口系统无法提供这种精度。正如其他人所说,只需处理任意的宽移动或自己计算中间点。

我需要精确的鼠标移动,以便制作3D fps游戏。所以鼠标必须对每一个像素的移动都很敏感,因为现在的实现是通过mouseMoveEvent实现的,而且并不平滑。那个方向的运动在抽搐。需要一些光滑的地毯。你对如何实现smoothnes有什么想法或链接吗?可能是[www.unp.me/f140/smooth-out-your-mouse-movement-38370/]?我需要精确的鼠标移动来制作3D fps游戏。所以鼠标必须对每一个像素的移动都很敏感,因为现在的实现是通过mouseMoveEvent实现的,而且并不平滑。那个方向的运动在抽搐。需要一些光滑的地毯。你对如何实现smoothnes有什么想法或链接吗?可能是[www.unp.me/f140/smooth-out-your-mouse-movement-38370/]?