Java 如何在处理过程中根据偏航、俯仰和滚动值旋转对象

Java 如何在处理过程中根据偏航、俯仰和滚动值旋转对象,java,opengl,3d,processing,Java,Opengl,3d,Processing,我正在尝试根据俯仰和滚动值旋转作为.obj文件导入的对象 我用这段代码实现了这一点 object.rotateX(ConvertToRadians(pitch)); object.rotate(ConvertToRadians(roll), 0, 0, 1); // This line is basically the same thing with rotateZ function. I used it because rotateZ gives a weird error. 然而,当新的

我正在尝试根据俯仰和滚动值旋转作为.obj文件导入的对象

我用这段代码实现了这一点

object.rotateX(ConvertToRadians(pitch));

object.rotate(ConvertToRadians(roll), 0, 0, 1); // This line is basically the same thing with rotateZ function. I used it because rotateZ gives a weird error.
然而,当新的俯仰和滚动值通过套接字连接到达时,我使用这些代码行。它将添加到上一个旋转。举个例子,当对象绕X轴旋转30度时,我尝试使其旋转10度。它将其旋转40度

我尝试保存上一个旋转并在使用此行进行新旋转之前撤消它

pieta.rotateX(ConvertToRadians(pitch-prevpitch));
它似乎部分工作,但经过一段时间后,原来的位置(俯仰=0和滚动=0不再是平的。它倾斜到某个角度。我不知道原因)。我认为将对象的位置重置为原始位置会起作用

我怎样才能达到我的目标

这是我的完整代码,如果你想重新创建它

用于在每一帧中设置一个全新的矩阵:

object.resetMatrix();
对象。旋转(转换半径(螺距));
用于在每一帧中设置一个全新的矩阵:

object.resetMatrix();
对象。旋转(转换半径(螺距));