假设您有一个由 f = [ai bj ck] 描述的单位向量,并且您想旋转 f 使其结果为 t = [di ej fk]。 该例程将找到 R(f,t) 使得 R(f,t)*f' = t'。 其中 R(f,t) 称为将 f 旋转为 t 所需的 3 x 3 变换矩阵。 该 MATLAB 例程基于 Tomas Moller 和 John Hughes 于 1999 年撰写的题为“有效构建矩阵以将一个向量旋转到另一个向量”的已发表文章。
这种方法没有平方根或三角函数调用,据报道比 Moller 和 Hughes 测试的任何其他矢量旋转矩阵方法都快。 实际上,在转换速度测试中,Goldman 方法(测试的最快方法)比此例程慢 50%。
工作示例:
单位向量 f: >> f = rand(1,3); >> f = f./范数(f);
单位向量 t: >> t = rand(1,3); >>
2023-03-04 15:52:40
34KB
matlab
1