-1

Android用のOpenGL ESには、gl.glRotateで回転させたいオブジェクトがあります。nしかし、このローテーションをすぐにではなく、数秒で実行したいと考えています。どうすればこれを実装できますか? nユーザーが回転を見ることができるように、これを数秒間発生させたいと思います。

4

3 に答える 3

1

オブジェクトがビューにレンダリングされる速度。1 回の更新に t の時間がかかるとすると、オブジェクトを回転させる量は (t/n)*r になります。r は、n 秒で必要な回転の合計量です。したがって、合計 n 秒で、有効な回転は r になります。

于 2012-07-01T18:54:44.803 に答える
0

OpenGL および OpenGL ES は、そのような機能を提供しません。それらが提供するのは、時間を考慮せずに、今すぐ描画して変換する方法だけです。

必要なのは、時間を処理するシステム、独自のフレームワーク/ライブラリ/エンジン、およびそれに関連する状態です。

この点に関して、SteveL の回答は正しいです。これは自分で処理する必要があります。

于 2012-07-01T21:17:13.427 に答える
0

System.currentTimeMillis(); を使用します。時間が経つ。

    int seconds=5;//rotate in 5 seconds
    long rotatestarted;
    void  StartRotate()
    {
          rotatestarted=System.currentTimeMillis();
    }
    void Render()
    {
          if(rotatestarted+seconds*1000<System.currentTimeMillis()){
                 DoRotate();
          }
    }
于 2012-07-01T19:36:25.807 に答える