【发布时间】:2017-02-03 17:06:42
【问题描述】:
我目前正在尝试根据两对 3D 向量 (V1, V1t) 和 R 推导出一个完整的旋转矩阵 R强>(V2, V2t) 这样
- V1t=R*V1
- V2t=R*V2
- V1 和 V2 相互正交。
使用了两对向量,因为一对向量(V1 和它的变换向量,V1t)没有带来足够的信息来构造旋转矩阵 R。一个很好的例子来说明例如 V1 位于 R 的旋转轴上。
这个想法是建立两个部分旋转矩阵R1和R2,以获得最终的矩阵R。
该实现使用 GLM,R1 和 R2 计算如下
R1 = math::mat3_cast(math::rotation(V1, V1t));
R2 = math::mat3_cast(math::rotation(V2, V2t));
我的猜测是,在计算 R 之前,沿轴 V1 的旋转应该与 R2 隔离,从而得到 R2'。
R 将是 R1 * R2'。
我的问题是
- 首先,从两对转换后的 3D 向量推导出旋转矩阵是否可行? (两个原始向量 V1 和 V2 被视为彼此正交)
- 如何从旋转矩阵中提取沿任意轴的旋转?
【问题讨论】: