我解这个问题的思路是这样:9 z+ w7 \ ~8 K2 z
! c! R" _5 O3 y
首先题目忘说了:XYZ是卡迪尔坐标系。
4 u# H- Q, Z7 G) l
* V& z( }/ N9 O0 L, R我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)
, G0 J" L/ q, W
) v8 N% j: o, g( g" s/ C0 W由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)
2 H0 a3 D" D: a# N" I( K0 B8 j7 ^$ S9 `
接下来:坐标系转换之一---旋转9 y7 l4 e4 }! {9 `+ v8 N* H b ?3 x
$ Y* t% t2 v) g; R* L1 e9 w. x$ X(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
( H& Z5 p" ]( D& m( B0 G( ]- G& _求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2
: F4 i9 |3 {% B3 }" T$ h; T& x[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值/ u8 i( A g0 O* @1 P
- C! M- m( \9 i( x' ?' N& X- w
坐标变换之二:平移5 y+ L7 F1 X9 @! k7 s7 \
4 H3 k& o5 m/ S2 B
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标( J( j5 e9 ?/ t5 |& i Y
3 n1 C. E! X- O9 @, ]8 j6 G) M这个问题就简单了。向量相加的问题。
2 d8 W+ N5 I8 ~0 Z. Z* {$ M) vo''在XYZ下坐标记为O1.6 @" v+ R, e$ r3 q8 o
a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O13 P7 ^- i5 }3 Q4 g# W: D
& w+ j" d( V& P' A
PS:其他大侠有其他想法吗,就像lanyuedao大侠那样。/ w4 E, u& Z9 z- o- d& M
8 v# {+ u0 w1 G! [ u1 X |