Qt实现图片随鼠标方向旋转
发布时间
阅读量:
阅读量
在日常开发中常遇到类似于QQ宠物眼效果的场景,在这些项目中需要实现鼠标跟随功能。经过短暂的思考与查阅相关资料后,决定采用定时器配合QCursor::pos()方法获取鼠标的全局坐标位置,并结合paintEvent函数绘制出动态旋转效果。
获取坐标
通过调用QCursor::pos()函数可以获取鼠标在屏幕上的绝对坐标位置。其中WindowsPt_X和WindowsPt_Y分别表示相对检测点的X轴和Y轴坐标值。借助于atan2()函数可以计算出对应的角度值。在C++编程中需包含相应的标准库头文件以引用这些功能。将给定的角度值转换为介于1至180度之间的单位,在计算式中的tmp乘以180再除以π所得的结果具有一定的精度限制。
MousePt = QCursor::pos();//获取鼠标的绝对位置
WindowsPt_X = WindowsPt_X+60;
WindowsPt_Y = WindowsPt_Y+70;
double tmp = std::atan2((this->MousePt.y()-WindowsPt_Y),(this->MousePt.x()-WindowsPt_X));
Angle= tmp*180/3.14;
paintEvent()显示图片
在获得角度之后,能够调用rotate()
全部评论 (0)
还没有任何评论哟~
