【问题标题】:How to rotate an object in processing according to yaw, pitch and roll values如何根据偏航,俯仰和滚动值旋转处理中的对象
【发布时间】:2020-08-25 13:20:03
【问题描述】:

我正在尝试根据俯仰和滚动值旋转导入为 .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));

它似乎部分工作,但一段时间后原始位置(pitch = 0 和 roll = 0 不再平坦。它倾斜到某个角度。我不知道原因)。我认为将对象的位置重置为原始位置会起作用。

我怎样才能实现我的目标?

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

【问题讨论】:

    标签: java opengl 3d processing


    【解决方案1】:

    使用resetMatrix() 在每一帧中设置一个全新的矩阵:

    object.resetMatrix();
    object.rotateX(ConvertToRadians(pitch));
    

    【讨论】:

      猜你喜欢
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多