我解这个问题的思路是这样:& S/ Z2 ?9 @ [. n! {
1 ^' w* t. M$ |) `' A" z+ D, l
首先题目忘说了:XYZ是卡迪尔坐标系。" R9 }- K1 R" ^" ? i
4 ^9 Q* G+ N7 u# S" Q9 B( w
我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)1 L f7 k; |$ e5 i+ Y. u5 {
" W# F" o- K7 r; X; U% [由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)3 r. O& Y7 w7 B
6 Y" g6 P! u. X% d# ]2 u! {接下来:坐标系转换之一---旋转) c( V3 X* i; y: T+ x1 b3 ]
! a! o* S% o7 E4 I6 B. D1 K(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)# \3 r& O7 U+ w, t
求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2
$ z6 {$ }4 k3 S9 e5 V+ |9 O% w# ^[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值
) Q: @) ]# J9 x+ c2 m E7 U- T& m, K/ o
坐标变换之二:平移
S4 W4 v* N: g( r7 `% H' M0 g; R
* H3 Z) V- N' j6 a4 d; x现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标9 Z' H" \$ T7 l0 \) z1 w( s& i
% h+ X, E& ?2 {/ H8 Z, g+ v
这个问题就简单了。向量相加的问题。1 h. ?( w6 z# p3 F" m. y
o''在XYZ下坐标记为O1.
& o& `& g n7 _a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
! u6 f7 @- b+ o% u& E
- [- P; }! B5 q4 ~( [9 bPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。% n5 Q: r& }' o) U; m; L' B
' ^# g/ Y; j& e( K" ^
|