我解這個問題的思路是這樣:
( i+ x/ G) l/ [9 t' q
; U7 P5 i# E. ?首先題目忘說了:XYZ是卡迪爾坐標系。( y8 }0 Q1 C z$ T! y
6 G; m9 ~& M& q+ z我假設一個局部坐標系,也是卡迪爾坐標系,將局部坐標系的原點O`與b一端點重合,Z軸正方向與b向量方向重合。然后問題可以化簡為a繞局部坐標系Z軸轉動theta角(假設a在局部坐標系下的坐標)
' Q$ W+ b- `& ]' g* P; X% A; U/ q5 f$ t$ Z( g) P
由以上假設可以推出 a繞b旋轉theta角在局部坐標系下坐標,記為a1。(這中間涉及了繞軸旋轉theta角后如何求坐標的問題,比較簡單,當然用蘭月刀大俠的極坐標更容易一點,但最后要轉化為卡迪爾坐標系下坐標)
, O+ L$ _3 [, R: F5 U
$ v4 R1 W' A& m* d接下來:坐標系轉換之一---旋轉% C3 W+ J7 t. b( ~2 r
0 e5 j: P# M3 f1 [0 C% `(為了幫助理解我假設一個“中間坐標系”,這個坐標系原點O``與局部坐標系重合,但其X'',Y'',Z''軸分別于XYZ坐標系XYZ軸平行,且方向相同)) t; E6 v$ m- R
求a1向量在X''Y''Z''坐標系下的坐標:a1坐標前乘以旋轉矩陣[R](注意要根據自己列的式子相乘,我列的是矩陣,所以乘以[R]之前也乘了個坐標矩陣),可得該坐標系下a向量坐標,記為a2( y6 d" b& {: K5 w# w" I3 X
[R]是3X3的向量。矩陣其中每一元素代表原坐標系和現坐標系3根軸角度的cosine值5 B" |' N8 y* A/ `: \, p
* s; n W. n% `
坐標變換之二:平移
' m7 w9 y5 h y. n! G" Q
* _) Q0 Z! o' j現在講X''Y''Z''下的a2坐標轉換到XYZ下的a坐標
3 h) E- w* d* X
; I* ^3 F% i% G) Q6 E; @" I3 p3 v這個問題就簡單了。向量相加的問題。' d; C% e) r# u- r/ E G$ `" s: v; T$ Y2 k
o''在XYZ下坐標記為O1.( i4 `4 u; v6 ~
a向量旋轉theta角后在XYZ坐標系下坐標表示為:a=a2+O12 K* X; G& I3 l7 b8 X
+ q1 Y2 H" I! S7 C7 _PS:其他大俠有其他想法嗎,就像lanyuedao大俠那樣。) g$ T" a* b" v: Z+ m
5 I8 H+ H3 |+ e M# c* O |