我解这个问题的思路是这样:
/ w, S# K% y2 a$ T& t+ x6 f6 R& O8 g* [- N
首先题目忘说了:XYZ是卡迪尔坐标系。
0 S# ]5 o* i; g
+ X( B/ A( @) p% o) {: g r, \8 J我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)" U# s: t7 l E$ v6 I. P
+ N% b3 ]% g6 o G
由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标), U; C7 @' ?5 v% u) c! g/ Z
" _% p: p) @ {$ y0 I) _
接下来:坐标系转换之一---旋转
( b4 T6 u2 G& D0 g5 h" X
& `3 a& o. Y1 q5 L3 m/ Z1 ~(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)$ g4 E- |, b& ?2 @! C: R6 n8 X
求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2
8 \' j0 g; P; W% s[R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值) R h* `6 H, p+ w, C8 H- \
$ O: t9 _, h+ V6 Y$ D
坐标变换之二:平移
$ U$ ?0 C" y" j; g6 \, }4 s9 A* m- R& ?" {/ f
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标
K, @, s# P5 O$ K: s, g) v" R1 f* }; q, B5 n$ ~7 Q* L, Y( R' G
这个问题就简单了。向量相加的问题。' l8 h6 V( B1 S" u- M
o''在XYZ下坐标记为O1.0 s+ j! @8 L% c6 j4 n- s0 \
a向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
8 O9 x' r' D/ M' ?
9 h! _& B1 @# p7 g9 {6 D0 F0 x: cPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。
+ E4 o7 E3 [ ^& Q
5 {9 L B1 A+ N1 B. f |