开发者

Find a position of a point in 3d space moving around a vector with uniform circular motion

Let's say I have a point A in a 3d space, and I want to move it with a uniform circular motion around the unit vector n.

Find a position of a point in 3d space moving around a vector with uniform circular motion

So I know the position vector of A, O and the unit vector 开发者_运维百科n (normal to the plane where O, A and B resides), and I know the angle AOB.

What is the quickest way to find the position of B ?


How about just applying the rotation matrix about an axis and angle?


In mathspeak, that would be OB = OA * cos(theta) + (OAxn) * sin(theta)


You will probably want to use Rodrigues' rotation formula. It is well suited for your very constrained problem (rigid body motion?). You probably won't need any more general, but also more complicated methods.


To answer the slightly more general question that your comment to Nemo poses, I'll assume that you have global points A and O and that you have a unit vector N and angle Φ and you want B. Here's how I'd do it. First find the projection of OA onto N (anchored on O). Then find O', which is the point you'll be rotating around. Then use the equations given by Jack V:

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

Where dotP and crossP are dot and cross products.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜