【问题标题】:HOw to first scale and then rotate a model instance in libgdx如何在 libgdx 中首先缩放然后旋转模型实例
【发布时间】:2021-01-23 09:51:16
【问题描述】:

我需要在 y 轴上缩放模型实例(1x1x1 qube),然后围绕 z 轴旋转它。 所以基本上它应该看起来像一个在中间旋转的梁。 不幸的是,无论我做什么,旋转总是在缩放之前执行,结果是一个亲爱的形状。 what I get and what I want

    instance.transform.setToScaling(JUMP_GATE_SIZE, JUMP_GATE_SIZE * 5, JUMP_GATE_HIGHT);
    instance.transform.setTranslation(x, y, 0);
    rotationMatrix.setToRotation(zVector, r);
    instance.transform.rotate(rotation);

知道怎么做吗? 我正在尝试将立方体缩放到空间中 2 个位置之间的新娘。

【问题讨论】:

    标签: model libgdx rotation instance scaling


    【解决方案1】:

    解决方案是由我的数学家妻子找到的。 矩阵运算的顺序是关键。基本上,所有应用的矩阵运算都在绘制操作期间反向应用于模型。 这意味着因为我最后对矩阵执行旋转操作,所以它实际上首先应用于模型。 有效的代码

        instance.transform.setToRotation(zVector,r);
        instance.transform.scale(JUMP_GATE_SIZE, JUMP_GATE_SIZE * 5, JUMP_GATE_HIGHT);
        instance.transform.setTranslation(x, y, 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多