我解這個問題的思路是這樣:
8 U. N. x; S6 S
9 y a/ L& }) A; k$ G4 H9 I5 o6 U9 h. e首先題目忘說了:XYZ是卡迪爾坐標系。" ^# F' W4 ?9 V6 B- E1 n8 N
, C7 a( t% L' s8 T- }: M我假設一個局部坐標系,也是卡迪爾坐標系,將局部坐標系的原點O`與b一端點重合,Z軸正方向與b向量方向重合。然后問題可以化簡為a繞局部坐標系Z軸轉動theta角(假設a在局部坐標系下的坐標)
- r9 ]" j& h6 d! p# Y2 d% U+ Q
" W$ |3 s2 }- u3 k# l由以上假設可以推出 a繞b旋轉theta角在局部坐標系下坐標,記為a1。(這中間涉及了繞軸旋轉theta角后如何求坐標的問題,比較簡單,當然用蘭月刀大俠的極坐標更容易一點,但最后要轉化為卡迪爾坐標系下坐標)
3 u: Y: k$ R7 l1 i" h
! s+ s1 O5 N) { T7 |接下來:坐標系轉換之一---旋轉
1 b' O2 \/ x4 v' l3 \- I+ P, M6 ^& @1 [& Z# k# i ]
(為了幫助理解我假設一個“中間坐標系”,這個坐標系原點O``與局部坐標系重合,但其X'',Y'',Z''軸分別于XYZ坐標系XYZ軸平行,且方向相同)
1 D$ u: S- e& z; u: p5 C+ H求a1向量在X''Y''Z''坐標系下的坐標:a1坐標前乘以旋轉矩陣[R](注意要根據自己列的式子相乘,我列的是矩陣,所以乘以[R]之前也乘了個坐標矩陣),可得該坐標系下a向量坐標,記為a21 o0 ?& z e3 _
[R]是3X3的向量。矩陣其中每一元素代表原坐標系和現坐標系3根軸角度的cosine值4 l3 ^* f0 F9 U8 O4 }0 \
5 b" w! S( @6 e4 p3 ^% n7 p1 ^
坐標變換之二:平移* o7 o; f8 \" G" B$ ]
" b% z m7 o* J% \2 b- l
現在講X''Y''Z''下的a2坐標轉換到XYZ下的a坐標
& e. U& b+ ]9 H x" ?/ G# o) ~! j1 V$ ` _# V `3 W$ i
這個問題就簡單了。向量相加的問題。
( {! @; I6 c# U9 F! C; io''在XYZ下坐標記為O1.
- [3 @; [- ^* c( _/ V" S7 Ea向量旋轉theta角后在XYZ坐標系下坐標表示為:a=a2+O1
+ |5 f1 _# X; B
" }/ J1 v2 e8 w( J# ?: kPS:其他大俠有其他想法嗎,就像lanyuedao大俠那樣。
. }' ^9 e+ ?- B0 G3 ^ A5 R) I. ]- g9 V: \
|