我解这个问题的思路是这样:
6 O3 ?8 L: o3 @
; E% [5 Y' Z1 i* F# E; ^: O1 h3 Z. C1 D首先题目忘说了:XYZ是卡迪尔坐标系。: L1 U7 i- v2 ~& ^0 X
3 a D8 ]& R1 s) Y% B0 }" g我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)
* A6 f/ C+ E, A8 U9 h o' n6 n7 v9 x. X- G
由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)
1 I2 ?* r! p- ?; |6 o7 n, |' }
O# U3 y9 L o' H' ?' s+ R, p接下来:坐标系转换之一---旋转! s/ S! |. H* q4 D
: s8 o5 M( C3 w w5 V
(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
! p! b& r0 O& c求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2$ }. q& w3 k) \; R
[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值& N9 `8 {" V5 N
i/ `" x' Q% I& m坐标变换之二:平移; `% C L# V: O3 i
4 Y0 h6 G! b+ D+ a* X4 J3 M现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标
4 v3 O4 U, g1 m5 g t$ D" q% h2 J# `# F9 p4 `8 C6 g3 w
这个问题就简单了。向量相加的问题。9 R4 J8 y! }1 h9 d
o''在XYZ下坐标记为O1.6 K3 m: a- R; d" S! u+ Q% Y7 Y9 L
a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1& L( A1 o6 o" Y! X2 A: W! ]
. n9 g1 u; c! l+ U1 N0 b
PS:其他大侠有其他想法吗,就像lanyuedao大侠那样。
4 Y. x# z- D; }; G& a+ t8 t* {& c! ?- P x
|