我解这个问题的思路是这样:& v; f7 M- F: c
, J1 k M+ p' ^ f" {: g1 W* c
首先题目忘说了:XYZ是卡迪尔坐标系。
, {, Y0 S* b' k# y+ P0 \- e/ Y1 r4 b/ e6 q; V# |0 ^9 t) m2 H
我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)9 X8 B6 B6 m8 C' W8 S" P4 b
6 _, D/ ]! J6 { Y4 u' |) X由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)- {7 \1 d# W" t
~: u: B9 p1 {$ j' F
接下来:坐标系转换之一---旋转& j# ?* H0 s' V( f7 I( C
2 U9 O1 S, ?! |- a& ]) c(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
# i5 D& g& @6 P$ n* U: x* ]求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2
- w% m3 {- o9 P T- l2 W' p[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值4 m8 R7 z, l6 g2 [
1 x9 ?1 t- r3 a* r+ k
坐标变换之二:平移3 Z0 I0 Z$ h$ o/ `" K+ J
9 J! t1 c$ P# w现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标, B, T, r% p4 H* k) x0 u9 R
! v2 ^! }1 Q. g) w) T/ g3 x+ ~. e这个问题就简单了。向量相加的问题。
8 }/ `( U0 `; ]$ K+ d: p5 ^+ J& Qo''在XYZ下坐标记为O1.
4 h4 [+ I( [7 h* b8 Y. S/ Q/ za向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
$ n/ q" I2 ]& i5 i# E1 ^: I/ p: Q( |) F& F$ b" ]+ c- \ L+ u
PS:其他大侠有其他想法吗,就像lanyuedao大侠那样。3 g; s V+ w- V& j
& f7 H6 E, \# k: d
|