[LayaAir 2.0]请教一个3维旋转的问题

我之前一直以为这两种方式是等价的,但现在发现不是。
上面的写法其实还是绕着世界坐标轴旋转的,之前用的时候没问题可能是因为物体的本地坐标系和世界坐标系重合
下面的写法才是绕着本地坐标系
但是Tween里无法用下面的写法,如果需要绕本地旋转应该怎么写
而且rotate函数只是描述增量,目标态应该怎么定义
QQ图片20200630095209.jpg

可以看到local和world坐标系不重合时,两个值依然保持一致

QQ图片20200630102903.png

 
已邀请:

qzzz

赞同来自:

还有一个问题就是绕着本地坐标轴旋转时,本地LocalRotationEuler是否应该恒为零,物体姿态仅表达在世界RotationEuler里。这样的话上面的第一种写法应该可以正确的表述,但是我看到local也是有值的且等于world,这是不是有问题?

qzzz

赞同来自:

如果旋转有local态表达,那一定是相对于初始态来说的,那么初始态要么就是以开始的姿态定义(world值可能不为0,但local清零),要么以world坐标系为标准(但这样的话local值和world值不就一样了吗,这两个变量还如何区分),目前来看laya好像是后面的情形?

qzzz

赞同来自:

我现在的主要问题是仅用rotate这种增量变换不能满足需求,因为localRotation不能正确表征当前的local状态,这样我无法判断变换何时完成。因为local变换单轴时,world三轴的值都会改变,难道还要我自己按照矩阵再转换回去才能知道正确的状态吗,感觉很简单的问题搞得我很困惑

要回复问题请先

商务合作
商务合作