我正在尝试将一个坐标系中的一组点转换为我的 Android OpenGL 项目的另一个坐标系。
假设matrix
是一个 16 个元素的浮点数组。Assumepoints
是对一个包含 4 个元素的浮点数组的引用。( 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 画布和 Matrix 'mapPoints' 所做的事情。