我解这个问题的思路是这样:& C( n$ A: ]. Y% r
. |" p; g( y5 s7 r0 X. B$ T' a首先题目忘说了:XYZ是卡迪尔坐标系。6 g0 t$ b; n, |* i) k, j- J
3 Z& f4 N) l4 B2 M2 _* m/ b; I我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)6 |6 i4 e3 \/ w
# y2 y, J' N+ M3 c1 n; L0 y
由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)3 B* a4 y* L. U7 y1 q
# Z" i, c9 \, Q/ N A$ t. j" p
接下来:坐标系转换之一---旋转8 C4 C3 `4 E i" j& c
9 u$ e6 @& W% p6 i% O1 S
(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
2 c F1 }0 _8 B8 [% T求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2; M# l6 b/ p# [; X8 p- h+ D0 `
[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值1 K7 z+ B6 v' {3 Z' @& q5 I. Q. u
6 g2 h( e8 F9 U坐标变换之二:平移5 l) i* x. @, C# c0 ]- }
7 F7 K- ? Y! f; Q0 g0 V
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标
; C8 V: z$ U ]9 s* E1 j2 ~* E3 q5 ?- i/ ]- ^
这个问题就简单了。向量相加的问题。5 R% A( f# w0 x y5 M
o''在XYZ下坐标记为O1.
# k& h$ D+ z# \5 i3 `3 Da向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
6 \' v7 F; u! a( Y
8 M" Y$ X( K' aPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。# w c# E3 p A% x5 t/ U( r0 ]
- Y3 {7 p' W, g$ @ |