Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 旋转矩阵正在缩放_Java_Opengl_Matrix - Fatal编程技术网

Java 旋转矩阵正在缩放

Java 旋转矩阵正在缩放,java,opengl,matrix,Java,Opengl,Matrix,我通过LWJGL在Java中使用OpenGL3.2,并发现使用glRotate已不再可能。所以,我编写了一些旋转矩阵来处理旋转。唯一的问题是,它们在旋转时缩放对象,我不知道为什么 我的矩阵创建者: Matrix4f rmat = new Matrix4f(); // identity float c = (float) Math.cos(theta); float s = (float) Math.sin(theta); rmat.m00 = c; rmat.m11 = c; rmat.m10

我通过LWJGL在Java中使用OpenGL3.2,并发现使用glRotate已不再可能。所以,我编写了一些旋转矩阵来处理旋转。唯一的问题是,它们在旋转时缩放对象,我不知道为什么

我的矩阵创建者:

Matrix4f rmat = new Matrix4f(); // identity
float c = (float) Math.cos(theta);
float s = (float) Math.sin(theta);
rmat.m00 = c;
rmat.m11 = c;
rmat.m10 = s;
rmat.m01 = -s;
结果是一个缩放图像,我不知道有多少。在这张图片中,差异是显而易见的:

有人知道为什么会发生这种情况或者如何修复它吗


注意:这是一个非常大的内部库的一部分,我不确定有多少可以提取到一个示例中。可以自由运行RotationTest类,该类从中生成图像。很抱歉,没有jar,但是库现在不能很好地使用jar。

我在旋转的图像中看不到任何缩放。你能添加一个你期望作为输出的图像吗?很有趣。在图像程序中旋转它会产生相同的结果。然而,我希望旋转不会像这样降低图像的质量。这是不可能做到的吗?如果三角形位于纹理中,请确保启用线性过滤。一般来说,质量对于旋转来说是非常主观的。您可以通过在另一张图纸上旋转一张图纸来玩弄这个概念。一个是源像素,另一个是目标像素。你选最近的吗?确保所有源纹理都有斑点?或者根据它们所占的面积混合?正方形的对角线比边大约1.4倍是完全正常的,这是毕达哥拉斯公式的直接结果是,将c和s除以
Math.sqrt(2)
。但这是一个面积缩小操作,应用此缩放旋转两次将导致一个正方形只有原始正方形的一半大(长度)。