Java 同时缩放和旋转纹理变换矩阵
从grafika的例子开始,我试图捕捉一个相机流到文件。在编码之前,我需要应用一些转换:Java 同时缩放和旋转纹理变换矩阵,java,android,opengl-es,grafika,Java,Android,Opengl Es,Grafika,从grafika的例子开始,我试图捕捉一个相机流到文件。在编码之前,我需要应用一些转换: 旋转图像 我可以这样做: Matrix.translateM(transform, 0, 0.5F, 0.5F, 0); Matrix.rotateM(transform, 0, rotation, 0, 0, 1); Matrix.translateM(transform, 0, -0.5F, -0.5F, 0); 应用刻度和平移 图像沿一个轴压缩。所以我必须沿着这个轴缩放,然后平移一点,这样我们才能看
Matrix.translateM(transform, 0, 0.5F, 0.5F, 0);
Matrix.rotateM(transform, 0, rotation, 0, 0, 1);
Matrix.translateM(transform, 0, -0.5F, -0.5F, 0);
float scaleX = mScaleX; // < 1 or == 1
float scaleY = mScaleY; // < 1 or == 1
float scaleTranslX = (1F - scaleX) / 2F;
float scaleTranslY = (1F - scaleY) / 2F;
Matrix.translateM(transform, 0, scaleTranslX, scaleTranslY, 0);
Matrix.scaleM(transform, 0, scaleX, scaleY, 1);
float-scaleX=mScaleX;//<1或=1
float scaleY=mScaleY;//<1或=1
浮点scaleTranslX=(1F-scaleX)/2F;
浮点scaleTranslY=(1F-scaleY)/2F;
translateM(transform,0,scaleTranslX,scaleTranslY,0);
scaleM(变换,0,scaleX,scaleY,1);
转换是为了在最终结果中获得“中心裁剪”,因为编码器将只捕获给定视口中绘制的内容
然而,我对将这两项行动结合起来感到迷茫。我花了几个小时在这个问题上,我的研究没有帮助。
有人能解决这个问题吗?我想旋转和平移可能有问题。若你们先旋转,然后平移,那个么你们会得到旋转的效果,而做反向运动会给你们轨道运动的效果,所以我想你们可以仔细看看你们正在做的第一个操作。