我解这个问题的思路是这样:
7 C: q! H5 M$ s( l1 Y
) [" d+ U1 x& Y4 e$ S首先题目忘说了:XYZ是卡迪尔坐标系。+ b/ W& k0 u' i7 r
+ L/ G+ U+ U8 v. p, i9 D
我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)# ^; L! e+ M3 J4 Y
$ q" H G1 C1 Z8 b; M由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)
( F! I A% C( \+ n/ C% L$ h' N( L0 V+ N# }% X) D' b1 `% w* C
接下来:坐标系转换之一---旋转( Y4 T3 m6 N. s2 T* p. `; J
+ i+ x+ R4 P/ Y5 m3 L, b(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
/ }" a1 u4 q( A& d7 {求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2
9 A3 c& T3 N( ?0 O[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值
7 Z( p& e1 h6 t) A% L) {+ Z. D8 a% Q5 v8 _
坐标变换之二:平移
( U" K, H- Y: E$ v, K4 Z# a: Y' n
1 A/ H6 S: o+ u K现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标
7 J1 P' ?" G9 t/ y2 D
3 o4 ]' j8 V9 W这个问题就简单了。向量相加的问题。
c0 R, c9 I# N( g( V& Mo''在XYZ下坐标记为O1.
4 B- u) X6 E- y$ \: ?a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
* @( G# q1 k: [' A0 P/ l5 k: D: N; v5 V5 X. d, q' Z" q% o3 v
PS:其他大侠有其他想法吗,就像lanyuedao大侠那样。
* q: o1 ]! p0 y7 p L( F6 k( H2 k- x( u; C) y+ ?
|