我对根据运动方程飞行的球的动画有疑问
x = speed*cos(angle) * time;
y = speed*sin(angle) * time - (g*pow(time,2)) / 2;
我用 QGraphicsEllipseItem 创建了一个 QGraphicsScene
QGraphicsScenescene = new QGraphicsScene;
QGraphicsEllipseItemball = new QGraphicsEllipseItem(0,scene);
然后我尝试为球设置动画
scene->setSceneRect( 0.0, 0.0, 640.0, 480.0 );
ball->setRect(15,450,2*RADIUS,2*RADIUS);
setScene(scene);
QTimeLine *timer = new QTimeLine(5000);
timer->setFrameRange(0, 100);
QGraphicsItemAnimation *animation = new QGraphicsItemAnimation;
animation->setItem(ball);
animation->setTimeLine(timer);
animation->setPosAt(0.1, QPointF(10, -10));
timer->start();
但我无法理解 setPosAt 的工作原理以及在这种情况下如何使用计算出的 x,y 。
setPosAt 的官方 Qt 文档非常简短且难以理解。