Qt/C++ 类似于 iOS UIKit Dynamics 的物理引擎
Qt/C++ physics engine similar to iOS UIKit Dynamics
我想知道在Qt
中是否有任何工具可以模拟动画的物理运动。我记得我曾经在 iOS
上看到,可以更快地向下拖动面板,并且面板会在屏幕底部弹跳,其强度与拖动的力成正比;我相信它叫做 UIKit Dynamics。像这样:
或者假设我想为我的 UI:
创建这种弹跳效果
此处进度圈经过值在达到新值后略有反弹。这些效果不能仅通过 Qt 动画提供的缓动曲线来完成。
有谁知道是否有办法用 Qt Widgets
或 Qt Quick
创建这些类型的动画?有什么可以与 Qt Animations
集成的东西吗?
每个动画api都有,而且不是"physics engine",叫"easing curves"。它们通常用于模仿物理交互并为原本枯燥无味的动画增添趣味。当然,Qt has them too,最常用的种类繁多,您也可以自己制作。
These effects can't be done just with easing curves Qt animations
offer.
看来你根本就没有尝试过。您发布的所有效果示例都可以使用缓动曲线来实现。例如,第二个效果的缓和曲线必须是这样的:
几乎线性上升,直到超过目标,保持片刻,然后缓缓回到目标。
此外,如果您打算制作精美的动画 UI,我建议改用 QML,并远离 QtWidget
堆栈 - QML 速度更快,更容易实现现代 UI 与。小部件不适合它,你可以,但这将是一个乏味的过程。
我想知道在Qt
中是否有任何工具可以模拟动画的物理运动。我记得我曾经在 iOS
上看到,可以更快地向下拖动面板,并且面板会在屏幕底部弹跳,其强度与拖动的力成正比;我相信它叫做 UIKit Dynamics。像这样:
或者假设我想为我的 UI:
创建这种弹跳效果此处进度圈经过值在达到新值后略有反弹。这些效果不能仅通过 Qt 动画提供的缓动曲线来完成。
有谁知道是否有办法用 Qt Widgets
或 Qt Quick
创建这些类型的动画?有什么可以与 Qt Animations
集成的东西吗?
每个动画api都有,而且不是"physics engine",叫"easing curves"。它们通常用于模仿物理交互并为原本枯燥无味的动画增添趣味。当然,Qt has them too,最常用的种类繁多,您也可以自己制作。
These effects can't be done just with easing curves Qt animations offer.
看来你根本就没有尝试过。您发布的所有效果示例都可以使用缓动曲线来实现。例如,第二个效果的缓和曲线必须是这样的:
几乎线性上升,直到超过目标,保持片刻,然后缓缓回到目标。
此外,如果您打算制作精美的动画 UI,我建议改用 QML,并远离 QtWidget
堆栈 - QML 速度更快,更容易实现现代 UI 与。小部件不适合它,你可以,但这将是一个乏味的过程。