【问题标题】:Calculating animation time Qt计算动画时间 Qt
【发布时间】:2015-05-23 07:10:38
【问题描述】:

首先,我对 Qt 还很陌生。我确实在寻找答案,但没有找到与我的问题类似的任何东西。我正在使用一个每 50 毫秒超时的计时器和一个

connect(timer,SIGNAL(timeout()),scene,SLOT(advance()));

动画一个圆形矩形(我自己的类绘制矩形并在每次调用 advance 时更改其坐标),直到它在 QGraphicsView 上完成一个完整的圆圈。

有什么方法可以测量动画完成所需的时间吗?基本上我按下按钮,动画开始,矩形完成圆圈,我需要输出它这样做所花费的时间。我知道我可以使用 QTime 来计算时间,但我不明白应该把它放在哪里,因为它使用了信号槽机制和计时器。谢谢。

【问题讨论】:

    标签: c++ qt animation


    【解决方案1】:

    如果我正确理解了您的问题,并且您只是想测量绘制动画所花费的时间,而不是绘制动画所花费的实际时间,那么您的任务是很简单。

    如果计时器每 50 毫秒超时一次,那么如果您计算绘制动画所用的步数,并将其乘以 50 毫秒,您就有了完整的时间。

    如果你的 advance() 函数每次都按固定的弧度步进,那么你就不需要计算任何东西。你事先知道需要多少时间。它可以很容易地计算如下:

    t = StepTime * (2 * pi) / StepAngle
    

    如果步距角以弧度为单位,或者

    t = StepTime * (360)/StepAngle
    

    如果步距角以度为单位。

    【讨论】:

    • 感谢您的回复!我确实需要实际时间,因为我正在尝试比较它在不同 PC 上的性能(只是我被要求做的任务的一部分)。据我了解,由于我选择实现动画的方法,时间将非常接近(我猜对于我的情况有更好的方法,但这个似乎是最简单的)但我我什至不知道我怎么能得到那些时间。
    猜你喜欢
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多