• 3534阅读
  • 4回复

[讨论]Qt5 绘制图片抖动问题 [复制链接]

上一主题 下一主题
离线兵317
 

只看楼主 倒序阅读 楼主  发表于: 2016-06-14
        之前发了几篇讨论帖,都是关于绘制表盘的相关问题,得到了热心网友的指导,谢谢了。现在的问题是这样的:利用Qt5 painter绘制表盘和指针,均是贴图实现,先把底盘的图片绘制到pixmap上,然后以pixmap这个坐标系为准,移动坐标系中心点绘制指针图片,实现旋转(具体实现参考本人第一篇帖子),当传入的速度值更新较快时,比如几十毫秒发一次,绘制函数根据传入的速度值实现绘图旋转,整个界面看起来效果一般,但指针在移动过程中感觉有种抖动的视觉感,看起来不平滑,指针较粗的部分没看出来抖动,就是较细的部分抖动效果明显,不知道什么原因导致这样的效果,更不知道怎么改善?
        另:是不是在Qt中将绘制过程放到paintEvent(QPaint Event *)里面才能实现双缓冲呢,还是放在自己定义的绘制函数也可以是双缓冲?
        
离线兵317

只看该作者 1楼 发表于: 2016-06-14
另外我运行了下qt自带的dialcontrol,效果看着很舒服,因为其中应用了弹性效果SpringAnimation,不知道可不可以将qml的这部分代码放到Qt5我的自定义函数里面呢?或者这个弹性效果的实现是怎样的呢(如果知道怎么实现,可以定义这样一个弹性类,然后应用到我的自定义函数里面)?
离线bran_lee

只看该作者 2楼 发表于: 2016-06-16
抖动可能是计算过程中使用了int而不是real作为计算结果,如果计算的每一步都使用real,精度上应该不会产生抖动
当你只有锤子时,你看什么都像是钉子!
离线兵317

只看该作者 3楼 发表于: 2016-06-21
回 bran_lee 的帖子
bran_lee:抖动可能是计算过程中使用了int而不是real作为计算结果,如果计算的每一步都使用real,精度上应该不会产生抖动 (2016-06-16 08:58) 

改为double后,抖动依旧,可能需要对传入的数据做些滤波或者其他处理了
离线spark253649

只看该作者 4楼 发表于: 2016-06-22
QTimeLine
业精于勤荒于嬉!
快速回复
限100 字节
 
上一个 下一个