Rotation 如何在cocos3d中更改旋转顺序

Rotation 如何在cocos3d中更改旋转顺序,rotation,cocos3d,Rotation,Cocos3d,我是CoCo3D的新手,现在我有个问题 在cocos3d中,我想旋转一个节点。我得到了x轴,y轴,z轴的角度,然后我使用属性:旋转来旋转,如下所示: theNodeToBeRotated.rotation = cc3v(x,y,z); 但我发现它并没有像我预期的那样旋转,因为文件上说旋转顺序是y-x-z 我想把订单改成x-y-z。有人能告诉我怎么做吗?您可能需要进一步澄清以下问题:“它没有像我预期的那样旋转” OpenGL ES(以及ergo、cocos3D)使用y轴作为上方向,因此旋转顺序仍

我是CoCo3D的新手,现在我有个问题

在cocos3d中,我想旋转一个节点。我得到了x轴,y轴,z轴的角度,然后我使用属性:旋转来旋转,如下所示:

theNodeToBeRotated.rotation = cc3v(x,y,z);
但我发现它并没有像我预期的那样旋转,因为文件上说旋转顺序是y-x-z


我想把订单改成x-y-z。有人能告诉我怎么做吗?

您可能需要进一步澄清以下问题:“它没有像我预期的那样旋转”

OpenGL ES(以及ergo、cocos3D)使用y轴作为上方向,因此旋转顺序仍然是x-y-z。如果要导入模型,则需要考虑三维编辑器的坐标系并进行相应调整

如果您不习惯使用三维表示,则从二维到三维的飞跃可能是一个重大障碍。在Cocos3D中:

  • x轴右侧为正,左侧为负
  • y轴向上为正,向下为负
  • z轴正向你移动,反向远离你
设想一下这三条轴线,或者更好,一根绳子

如果绕x轴旋转,请从左到右水平握住绳子:物体将朝着你旋转或远离你旋转

如果绕y轴旋转,请从脚到头垂直握住绳子:对象将像旋转门一样旋转

如果你绕z轴旋转,请将一端靠近胸部,另一端尽可能远离:物体的旋转方式与钟面相似

--更新

我强烈建议不要更改旋转顺序,因为使用Y-X-Z是OpenGL的标准。如果您希望修改它,请查看CC3GLMatrixMath并查找kmMat4RotationYXZ-还有kmMat4RotationZYX。如果您想要X-Y-Z,您需要构造自己的旋转矩阵,并在CC3GLMatrix和CC3GLMatrixMath中进行相应更新


作为参考,您还有-它应该给您一些建议。

非常感谢。在CC3Node属性旋转的文档中,它说“旋转是按Y-X-Z顺序执行的,这是OpenGL的默认值”。所以我希望知道,有没有办法更改顺序,按x-y-z顺序执行?更新答案,包括有关CC3GLMatrix和CC3MatrixMath的详细信息。我不是要求您创建新标签。在cocos3d中查找并找到cc3glmatrix/cc3matrixmath