我解这个问题的思路是这样:& J8 O* l/ C& M1 m: \, c
4 g0 h9 V, q4 a
首先题目忘说了:XYZ是卡迪尔坐标系。1 o- s) e4 ]# P
y5 _. W: Y. C
我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)7 P' `+ j2 [1 @; O$ Z
- c0 k1 _* C5 _% i
由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)6 n7 w; v- w' T: l1 V
! F C3 d1 y F& v2 q
接下来:坐标系转换之一---旋转' i, u, X6 s& I- z% a
8 q0 M3 O3 t0 p, I(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
% J! ~5 y1 S7 s( T, t- t求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2! e- z4 u! L' R* d) a/ Q
[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值* i0 r' F. [1 i+ E
) w* g. i* g. Z- K+ ~
坐标变换之二:平移
8 i) N% j, w0 t: H1 D8 d8 S: e& e# \# l/ ~( A3 [
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标: i" t2 w) x0 e6 g. F
4 h* Y, A# g- U8 j' y( o3 U3 a
这个问题就简单了。向量相加的问题。. H+ c- k4 Q$ {" ^4 c
o''在XYZ下坐标记为O1.% q3 M0 P6 B8 I$ X- [, Y+ X
a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
2 W6 ?- e, u2 r: V# w U9 S
' c3 r& N ]& l7 }- WPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。8 F8 u/ S# B% z! `5 [
1 X0 a* S% J1 n |