假设我有一个包含 3 个向量的类(一个用于位置,一个用于缩放,一个用于旋转)我可以使用它们生成一个变换矩阵,该矩阵表示对象在 3D 空间中的位置、旋转和大小。然后我添加父/子对象之间的关系,我将孩子的局部变换矩阵乘以父母的全局变换矩阵,得到孩子的全局变换矩阵,这是我用于渲染对象的矩阵,所以当父母旋转时,孩子像轨道一样围绕它旋转。现在我需要能够获得孩子的局部变换(不是整个矩阵,只是单独的组件)。我知道孩子的全局变换,我知道父母的全局变换。
我可以通过将孩子的全局变换乘以父变换的反转来获得孩子的局部变换。但是我真的需要能够专门做到这一点:
1.能够得到孩子的本地位置,只需要知道它的全局位置和父母的全局位置,而不需要生成任何矩阵;
2.能够得到孩子的局部旋转,只需要知道它的全局旋转和父母的全局旋转,而不需要生成任何矩阵;
3.能够得到孩子的局部尺度,只需要知道它的全局尺度和父母的全局尺度,而不需要生成任何矩阵;