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