我解这个问题的思路是这样:
: {' r% D, g6 a9 f& w0 v5 h, s, |: |$ Z3 |- j" z
首先题目忘说了:XYZ是卡迪尔坐标系。& ^; K6 e3 q) ?6 s
1 ], K: z, l- A* K" R! b我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)
6 R% |5 Z- f+ R4 ]
" N" I( O$ r* w; ~; y由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)
7 ]* N- @/ h) s! Q0 S, O; g
& |5 i' M' C- x9 u' s/ D4 w接下来:坐标系转换之一---旋转
3 D6 z+ O# R' p$ A5 F4 s* v* @5 o) q0 r! X' b
(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
0 W, g1 [$ _: y) F( h求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a20 N1 O6 m, P4 B5 ~) E: R) M
[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值' f* R2 g9 E5 P- o) ]1 j" i& d
" N$ o: x, M5 @& c& N" F8 v坐标变换之二:平移
3 \1 V# \4 j" a; @5 u" |; |7 n6 s& }. z: c4 X5 T% X+ o' L
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标
, ?0 c1 ]9 V) ?
0 \- ?% N: \7 i; B这个问题就简单了。向量相加的问题。" r/ S% h% `. @
o''在XYZ下坐标记为O1.+ M+ Y6 @4 ^6 ~4 h- E5 R' F
a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
/ j# I0 H+ r3 ^- R( t
% J, W, v3 b+ G- R' U) aPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。
) t: Y/ W/ i5 a8 w6 p+ `1 `6 g: t T# M0 H- {" R
|