我通过LWJGL在Java中使用OpenGL 3.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;
结果是缩放图像,我不知道多少。这张照片中的差异很明显:
有谁知道为什么会这样或者如何修复它?
注意:这是一个非常大的内部库的一部分,我不确定可以将多少内容提取到一个示例中。随意运行从here生成图像的RotationTest类。对不起,没有罐子,但是库现在不适合用罐装。