计算复合仿射变换



给定三维中的两个仿射变换(即TRS变换)T0和T1,每个由平移向量(t),四元数(r)和缩放向量表示(s) .

现在,假设我想计算组合变换,即创建单个对应于T1(T0(*))的变换

一种(简单的)方法是简单地建立3x4矩阵对应于此变换,提取平移向量和组合缩放/旋转矩阵然后用极坐标分解把矩阵分解成缩放向量和四元数。这然而,分解在计算方面是相当昂贵的,它是否可能计算新的缩放向量和四元数没有这个操作?

我几个月前才开始学习这个,但我认为我可以回答你的问题-我认为可以计算新的缩放向量和四元数,而无需显式执行极坐标分解。我已经列出了下面的步骤:

  1. 从平移向量、四元数旋转和T0和T1的缩放向量开始:

    • T0的平移向量:T0
    • T0: r0的四元数旋转
    • T0的缩放向量:s0
    • T1平移向量:T1
    • T1: r1的四元数旋转
    • T1的缩放向量:s1
  2. 计算新的平移向量:t_new = T1(t0) + T1

  3. 计算新的四元数旋转:R_new = r1 * r0

  4. 计算新的缩放向量:S_new = s0和s1的逐元素乘法

现在,您有新的平移向量(t_new),四元数旋转(r_new)和缩放向量(s_new),它们一起表示组合变换T1(T0(*))。

相关内容

  • 没有找到相关文章

最新更新