2011-07-31 11 views
0

私は、平面上のディスクロボットのパスを計算し、このパスに沿ったロボットの動きを視覚化したいアルゴリズムを実装しています。QT 4.7.1でQPropertyAnimationを使用した複雑なアニメーション

パス各サブパスが pair<QPointF,QPointF>要素のリストであり、サブパスのベクトルです。最初のQPointFは、Aの現在の位置とBの2番目の位置を表します。2つのロボットは、1つのペアからもう一方のペアに同時に移動します。

サブパス内のロボットの動きを、各ロボットのQPropertyAnimationと、2つのQPropertyAnimationオブジェクトのQtParallelAnimationGroupを使用して、正常に視覚化できました。

問題は、すべてのサブパスに対して、サブパスのアニメーション全体に静的なままである一定のグラフ(ライン/エッジとポイントのセット)を画面に表示しなければならず、ロボットが次のサブパス。

QPropertyAnimationがサブパスの現在のアニメーションを終了するたびにグラフを追加しようとしましたが、アニメーションがコードと同じスレッド上で実行されているようですのでwhile (propAnim->state() != QAbstractAnimation::Stopped){}は使用できません。

誰にもこの問題を解決する方法はありますか?

答えて

0

OK、解決方法を考えました。

サブパスのアニメーションを担当するQtParallelAnimationGroupごとに、finish()信号を次のグラフを画面に表示する方法に接続しました。

関連する問題