假设我在3d空间中有一个点A,我想用单位向量n周围的均匀圆周运动来移动它。
所以我知道A,O的位置向量和单位向量n(垂直于O,A和B所在的平面),我知道角度AOB。
找到B的位置的最快方法是什么?
答案 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是点和交叉产品。