model - 如何在 libgdx 中先缩放然后旋转模型实例

标签 model libgdx rotation instance scaling

我需要在 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);

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

最佳答案

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

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

关于model - 如何在 libgdx 中先缩放然后旋转模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65857776/

相关文章:

ajax - ExtJS-网格为空但存储已加载

authentication - CakePHP:获取模型中的用户信息

java - 构造函数的 com.badlogic.gdx.utils.Array 参数

java - 如何让我的相机更新与我的玩家 Sprite 相同的帧?

codeigniter - 如何在 CodeIgniter 中从另一个模型继承一个模型

button - libgdx 中的关闭按钮事件

c++ - C++ 中循环移位(旋转)操作的最佳实践

html - 使用 -webkit-transform 时固定位置不起作用

c++ - GCC下的_rotl64相当于什么

model - 圆角矩形和普通矩形的使用区别