【发布时间】:2015-05-04 14:58:48
【问题描述】:
我有一个向量 v = <0,0,-1> 和其他四个向量,它们在 z-index 为 -1 处形成一个“正方形”,边长为 2*s,因此这四个向量是:
OA = <-s, s, -1>OB = < s, s, -1>OC = <-s,-s, -1>OD = < s,-s, -1>
现在,考虑 3D 空间中任意位置的点 P。
我想旋转v,使其与点OP 的位置向量P 对齐,然后对其他四个向量应用旋转,使所有四个向量以相同的相对位置粘在一起来自v的位置。
换句话说,向量的整个“金字塔”需要旋转,以便v 和OP 对齐。
P 点是任意的,可以是 3D 空间中的任何点。非常感谢任何帮助!
【问题讨论】:
-
我认为这个问题应该在scicomp.stackexchange.com 提出。您应该准确地说,如果我理解正确,您想围绕点 O 旋转形状 ABCD。
-
原谅我。我在这里看到了与数学相关的问题。我把问题复制过来。谢谢
-
@Mekku 如果你这样做了,请从这里删除它。
-
Eigen 有一个 Quaternion 类模板可以执行此操作,以防您不想重新发明轮子。
-
@Wintermute 我已经尝试过使用四元数,但我似乎无法理解它们。如果我有四元数旋转将中间向量
v旋转成OP,那么可以将相同的旋转应用于其他四个向量吗?
标签: c++ math vector 3d rotation