我解这个问题的思路是这样:
/ `9 i% U4 q+ r& T( T: M# h
: _5 u$ S6 j& b4 B, p首先题目忘说了:XYZ是卡迪尔坐标系。3 m8 `$ Q2 U ^2 W" U& C1 C
& W, D, W6 l1 j" c4 e" v3 d) A, }
我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)
$ q3 Z3 C6 r/ K/ b0 K* I2 ^8 T7 s# i0 x" F a# E- ~& K; U% D
由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)
' g) O8 b ^0 Y( e9 B3 x
4 Z% {6 p4 b8 r2 m, p& a8 c# A接下来:坐标系转换之一---旋转
3 t8 F& X; s7 E
, n5 g2 A& Y% F9 H(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)4 u: z' P1 z A8 z
求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a24 w( W9 V- c" I
[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值
& o& |" p* W9 m- w a. `! P$ Q" K/ s! c, O" V: ?& Y4 K
坐标变换之二:平移# H! n3 b" z: J/ w; s F
' `3 q; a s0 P; e9 m& X
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标
" y/ f" h ]( z$ `
! }' M! p) g3 f3 e! _. o0 |这个问题就简单了。向量相加的问题。
u$ p( `/ z: D5 x% uo''在XYZ下坐标记为O1.
# p- }" ?- Z& w4 e, s% Za向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O12 C8 L, u7 R7 i- ?
& Q% U2 A" Z5 J3 }3 SPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。: C3 [8 V! t! x# d* Y
: P& p# P: S- q; Z5 ?) D8 Q) ~ |