我解这个问题的思路是这样:
% @5 q e9 T- D& N( M/ i2 P1 o# L4 P! ~6 ^* r% ?. q3 f
首先题目忘说了:XYZ是卡迪尔坐标系。( ]2 {' t* z+ Z$ Q+ V6 k
2 S; N8 i& i6 L, c
我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)
- n5 B% s' f/ H% W3 ]5 U3 A$ _) s
- i' |/ j7 b7 t! \ P" `) A! q由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)
( ]. o J4 Y% V, Z6 e9 y8 @! M: n' K# G9 L& I7 D5 c
接下来:坐标系转换之一---旋转, `$ b) Q7 H3 ? i+ H5 N/ e+ j
V: _8 s6 i8 B9 t: U7 ]1 T(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
. m2 Y, j/ _8 B5 J求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2
" X* g5 x5 `! e5 R[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值& d$ E# f+ M# j9 {
( O& P1 S; V" t0 E% P坐标变换之二:平移
# w! z0 K) ?: @
% f4 e7 N: v+ p. {) [/ H5 @( t! l现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标 Z& u5 y+ ]' d# L L# A V- r
6 R. G8 J( w' Y" f
这个问题就简单了。向量相加的问题。1 D' \3 n$ y, A5 @( C- [; b" b
o''在XYZ下坐标记为O1.1 Y) P% b( k& o
a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1+ \, [! G# `7 u3 H! k5 F+ T
$ t( q; m1 p {+ VPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。
; C0 {1 q/ M$ P. ]5 v
& a0 U+ ^1 A2 B; c' L" Y |