我解这个问题的思路是这样:" V& f z6 l: d/ F9 C
" q2 e- L2 P5 d1 U' Y) t首先题目忘说了:XYZ是卡迪尔坐标系。8 j' q2 v4 [9 B) P8 g
! ]9 w& I5 q2 l
我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)3 T+ F5 t2 D0 ~6 f( D. \
1 P7 l) f# k+ G% G1 j由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)/ B) J9 z7 _+ t8 Q
! {8 X% Q8 X1 s. f0 W
接下来:坐标系转换之一---旋转
# h" G2 z/ l$ h, y! k
" ~. O9 d0 c5 A5 [+ X7 [+ ?' P(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)/ P# ?5 y1 Z9 L, V
求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2
& d1 L, \7 l; u7 w+ \4 x[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值
/ ^/ O* T; [: v2 ]" R0 [* M+ L3 |0 D" S+ q
坐标变换之二:平移
0 L2 l9 ^# g5 h4 K u" \- y
6 z) E: u ]( T( |- m, T现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标
$ i9 |0 y, M) x& n& N" i- k( k! D" P* a
这个问题就简单了。向量相加的问题。% i& g- R- y) t& _8 h
o''在XYZ下坐标记为O1.0 `3 J6 s" O2 u& J. m5 g1 y- X
a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
/ _( D0 |9 B& p/ }( ~; l
1 t. Y9 G y; u. k& \. sPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。, R1 m7 c+ `, @
6 y' m S \8 F9 z
|