我解这个问题的思路是这样:
3 y8 L4 }" W1 M0 f, l& h# Z( o7 ~- D/ N \4 h( _, `) z
首先题目忘说了:XYZ是卡迪尔坐标系。( N8 N. Z' h2 b
+ B; b( ?$ y3 J3 ?
我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)
5 ~; F% ?" n+ }' z" G7 \3 a* q. n8 t0 R* a# h% J' Q. Z6 C, n) i
由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)0 X* `8 @; I1 I* _7 L- F2 `
: z2 r; a/ f2 h# x9 m( A2 d @* E) i
接下来:坐标系转换之一---旋转
" v' O, \* A( r* n P. n2 `, g
+ a$ F" S# Z2 ~% \. n2 f, Z5 S(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)1 u2 }+ a z, N
求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2- r0 T3 v% @) X8 P: b3 d
[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值
0 C. U- o: n, u7 z
! a h3 L( G' i/ d* h8 E5 n坐标变换之二:平移8 \6 v' _8 V' `2 }5 Y
2 r4 d8 e% A7 \
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标+ ^6 ` T, r5 D) C
2 m9 d2 M1 e; c9 X
这个问题就简单了。向量相加的问题。, `2 N+ g, J/ V! [; Y7 y
o''在XYZ下坐标记为O1.: u1 x/ A" |0 D
a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
" v- q' M' Y% D4 y- G
3 g4 S4 y& O. {$ F( bPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。5 W8 O' m, a4 u
/ i7 w7 b: e+ n8 G- _7 L: d" U |