1
我正在尝试获取由两个三维金字塔组成的复合3D对象,以弧度为角度围绕给定轴旋转。但是,复合物体的其中一个金字塔并不与其他物体齐平。如何绕轴旋转3D对象而不更改其位置? (LWJGL)
在下面的图片中,我试图旋转关于X轴的左对象PI弧度。但是,其中一个金字塔不能保持在正确的位置。
http://i.stack.imgur.com/MekFZ.png
下面是我使用向缩放,旋转和平移的代码。
float[] model = { xSize, 0, 0, 0,
0, ySize, 0, 0,
0, 0, zSize, 0,
xLoc, yLoc, zLoc, 1 };
FloatBuffer modelBuf = BufferUtils.createFloatBuffer(model.length);
matrix = new Matrix4f();
matrix = matrix.scale(xSize, ySize, zSize);
matrix = matrix.rotateXYZ(dxRot, dyRot, dzRot);
matrix = matrix.setTranslation(xLoc, yLoc, zLoc);
modelBuf = matrix.get(modelBuf);
glUniformMatrix4fv(unif_model, false, modelBuf);
有人知道为什么会发生这种情况吗?
您能否提供'Matrix4f'的代码? –
https://github.com/JOML-CI/JOML/blob/master/src/org/joml/Matrix4f.java –