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