我解这个问题的思路是这样:5 T o! g, i: B* Y) e, Q2 b- N
) e5 ? v& J% q; S. @( p5 J# @5 \: {
首先题目忘说了:XYZ是卡迪尔坐标系。
6 D* B* I8 K/ R# v
9 l/ t) Y, L& K+ {4 C我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标). a5 C$ L8 a1 H, i
$ T$ Y- ?1 n. Q+ O7 O0 U
由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)
; W; l1 \- C! s2 W* B$ ~" s4 }" w) z: _' I0 k
接下来:坐标系转换之一---旋转" ~5 B) @3 D& W" l6 O
. N. A- z0 i2 _(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)! V9 q, ?+ O7 q' ^$ s
求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2$ ~) x5 I5 N( r+ _: [( g
[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值
0 j; h7 k2 C0 C6 [$ |0 `
: o ^1 D- i' Q5 ^, ]坐标变换之二:平移% z1 d- V- b5 M) g
' S) G. f1 k) A$ a- Z2 Z
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标
- c# R3 K' N3 o+ m5 n6 x0 h% ^* A7 b. l! ~7 ~- @* y- N
这个问题就简单了。向量相加的问题。! J( g+ z" a! [7 |
o''在XYZ下坐标记为O1.
5 L6 j/ G# E* ^' w3 U" V9 Ma向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1; _4 A* y) [/ m u
9 b$ l' J$ _, N* _( B }) B
PS:其他大侠有其他想法吗,就像lanyuedao大侠那样。
9 j4 j/ {) q- R7 @, S( D4 d. V$ M+ S) M' ^; C6 a5 n
|