找到一个点在3d空间中的位置移动矢量与均匀的圆周运动

时间:2011-07-06 16:16:38

标签: math 3d geometry

假设我在3d空间中有一个点A,我想用单位向量n周围的均匀圆周运动来移动它。

所以我知道A,O的位置向量和单位向量n(垂直于O,A和B所在的平面),我知道角度AOB。

找到B的位置的最快方法是什么?

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:2)

在mathspeak中,那将是OB = OA * cos(theta)+(OAxn)* sin(theta)

答案 2 :(得分:1)

您可能希望使用Rodrigues' rotation formula。它非常适合您受约束的问题(刚体运动?)。您可能不需要任何更通用但也更复杂的方法。

答案 3 :(得分:1)

为了回答你对Nemo的评论稍微提出的一般问题,我假设你有全球分数 A O 并且你有一个单位矢量 N 和角度Φ,您想要 B 。这是我怎么做的。首先找到 OA 投影到 N (锚定在 O 上)。然后找到 O',这是你要转过的点。然后使用Jack V给出的公式:

O' = O  + dotP((A-O),N)N
B  = O' + cos(Φ)(A-O') + sin(Φ)crossP(N,A-O')

dotP和crossP是点和交叉产品。