2011-07-09 14 views
2

ImはMatrix.rotateM()を実行しようとしています。行列自体の横にあるすべてのパラメータが0.0fであれば、行列はいくつかのNaN値で崩れてしまいます。Android Matrix.rotateM NaNの結果

mModelMatrix = new float[16]; 
Matrix.setIdentityM(mModelMatrix, 0); 
Matrix.rotateM(mModelMatrix, 0, 0.0f, 0.0f, 0.0f, 0.0f); 

このようなマトリックスになります。

[NaN, NaN, NaN, 0.0] 
[NaN, NaN, NaN, 0.0] 
[NaN, NaN, NaN, 0.0] 
[NaN, NaN, NaN, 1.0] 

は、回転前の行列はこの

[1.0, 0.0, 0.0, 0.0] 
[0.0, 1.0, 0.0, 0.0] 
[0.0, 0.0, 1.0, 0.0] 
[0.0, 0.0, 0.0, 1.0] 

のように見える。しかしMatrix.rotateM()に私の呼び出しは、その後は0.0fない値が含まれている場合、マトリックスは正常に見えます。それは期待された行動ですか?または何か間違っているのですか?

答えて

3

ドキュメントに記載されているとおり:

角度(度) を適所に行列Mを回転軸の周りを(X、Y、Z)

あなたがしようとしている軸周りを回転するのはnullです。ヌル軸を中心に回転する方法はなく、回転の仕方がわからず、失敗します。私は通常、x、y、zのいずれかに1.0fを使用し、もう一方の2には0.0fを使用します。これは、指定された軸を中心に回転を与えます。

関連する問題