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 –