Android OpenGL プロジェクトで、ある座標系の点のセットを別の座標系に変換しようとしています。
matrix
は 16 要素の float 配列であると仮定します。Assumepoints
は、それぞれ 4 つの要素を持つ float 配列の配列への参照です。( points = new float[8][4]
)
行列を恒等行列に設定し、それを変換して、ゲームオブジェクトの回転を掛けます。次に、8 つの頂点のそれぞれを新しい行列座標系に変換しようとしましたが、どの点も変化していません。
Matrix.setIdentityM(matrix, 0);
Matrix.translateM(matrix, 0, go.getPosition().getX(), go.getPosition().getY(), go.getPosition().getZ());
Matrix.multiplyMM(matrix, 0, matrix, 0, go.getRotationArray(), 0);
//Matrix.rotateM(matrix, 0, 30f, 1.5f, -5f, 0f); testing debug purpose
for(int i=0;i<8;i++)
{
Matrix.multiplyMV(points[i], 0, matrix, 0, points[i], 0);
}
私は基本的に、Android の 2D キャンバスとマトリックス 'mapPoints' が行うことをしようとしています。