Qt 平滑运动过渡
假设有一辆车辆以恒定速度向目标移动。在某一点上,它看到一个目标,应该减速以完全停止。Qt Quick中的动画如何实现这一点,记住它停止的时刻是未知的,并且将由某些AI系统发出 当运行下面的应用程序时(虽然简化了,但试图解决此问题),由于已知停止状态的条件,从移动状态到停止状态的转换并不平滑。如何通过以项目在移动状态下以相同的速度启动来轻松进入停止过渡Qt 平滑运动过渡,qt,qml,qt-quick,qtquick2,Qt,Qml,Qt Quick,Qtquick2,假设有一辆车辆以恒定速度向目标移动。在某一点上,它看到一个目标,应该减速以完全停止。Qt Quick中的动画如何实现这一点,记住它停止的时刻是未知的,并且将由某些AI系统发出 当运行下面的应用程序时(虽然简化了,但试图解决此问题),由于已知停止状态的条件,从移动状态到停止状态的转换并不平滑。如何通过以项目在移动状态下以相同的速度启动来轻松进入停止过渡 这可以通过使用单一国家(IMO as、 ApplicationWindow { id: window vis
这可以通过使用单一国家(IMO as、
ApplicationWindow {
id: window
visible: true
color: "black"
width: 150
height: 600
Timer {
running: true
interval: 1000
repeat: false
onTriggered: {
unit.state = "moving";
}
}
Rectangle {
id: unit
width: 150
height: 150
radius: width
color: "white"
state: "stopped"
states: [
State {
name: "moving"
PropertyChanges { target: unit; y: window.height - unit.height }
}
]
transitions: [
Transition {
to: "moving"
NumberAnimation {
property: "y"
duration: 2000
easing.type: Easing.OutQuad
}
}
]
}
}
对原始代码进行了一点修改。您可以尝试更改持续时间和/或放松类型,以获得更流畅的体验。您的目标是什么?是要使圆从上到下平稳移动吗?是的。如果运行该应用程序,您会注意到,当进入停止状态时,速度会发生瞬间变化。我希望“停止”状态以项目在移动状态下以相同的速度移动圆圈,然后使其停止。我已将问题更新为更具体。谢谢,这非常有效。然而,我的问题还不够清楚。请查看更新版本。@troyane,它解决了一个问题,但不是我感兴趣的问题。@Mitch,请更准确地说明您的问题
ApplicationWindow {
id: window
visible: true
color: "black"
width: 150
height: 600
Timer {
running: true
interval: 1000
repeat: false
onTriggered: {
unit.state = "moving";
}
}
Rectangle {
id: unit
width: 150
height: 150
radius: width
color: "white"
state: "stopped"
states: [
State {
name: "moving"
PropertyChanges { target: unit; y: window.height - unit.height }
}
]
transitions: [
Transition {
to: "moving"
NumberAnimation {
property: "y"
duration: 2000
easing.type: Easing.OutQuad
}
}
]
}
}