我解这个问题的思路是这样:9 {- S& u4 W$ V" k3 L/ {
2 Q3 @ N, w; E) t
首先题目忘说了:XYZ是卡迪尔坐标系。
9 n& h8 D6 C) ~" K D$ _/ `% m( @
$ v- w. ^2 T; o3 r我假设一个局部坐标系,也是卡迪尔坐标系,将局部坐标系的原点O`与b一端点重合,Z轴正方向与b向量方向重合。然后问题可以化简为a绕局部坐标系Z轴转动theta角(假设a在局部坐标系下的坐标)3 \( l5 y: L7 A5 S+ I1 s/ X
, p x$ f6 g1 f K5 P- W由以上假设可以推出 a绕b旋转theta角在局部坐标系下坐标,记为a1。(这中间涉及了绕轴旋转theta角后如何求坐标的问题,比较简单,当然用兰月刀大侠的极坐标更容易一点,但最后要转化为卡迪尔坐标系下坐标)& M5 x: W9 Z* ~! J
( S8 l3 ?6 L5 {# S) O3 v- M' m2 m
接下来:坐标系转换之一---旋转
' C$ z/ B5 I1 ?- F0 Y. w1 ]- \7 n& W0 ?, [& ~
(为了帮助理解我假设一个“中间坐标系”,这个坐标系原点O``与局部坐标系重合,但其X'',Y'',Z''轴分别于XYZ坐标系XYZ轴平行,且方向相同)
+ N) a/ p) P7 x$ m7 F) h求a1向量在X''Y''Z''坐标系下的坐标:a1坐标前乘以旋转矩阵[R](注意要根据自己列的式子相乘,我列的是矩阵,所以乘以[R]之前也乘了个坐标矩阵),可得该坐标系下a向量坐标,记为a2
, n* q' H3 D0 I/ ][R]是3X3的向量。矩阵其中每一元素代表原坐标系和现坐标系3根轴角度的cosine值8 W' h* R4 ~2 X* _
4 I6 {6 B/ t r& y
坐标变换之二:平移0 O7 T" n# F* A$ _+ p# V9 m
. ?/ p4 z( S+ @) }0 A
现在讲X''Y''Z''下的a2坐标转换到XYZ下的a坐标. L) N6 l+ e- Z H
3 R" L2 a9 f# i" p8 [
这个问题就简单了。向量相加的问题。5 ]2 R p! R, `" O7 i
o''在XYZ下坐标记为O1.
3 H) ~- L: i% L$ Oa向量旋转theta角后在XYZ坐标系下坐标表示为:a=a2+O1
8 K3 d7 j2 w( X1 c1 ]
3 P9 g; W$ m$ Z# k* P9 v4 o/ QPS:其他大侠有其他想法吗,就像lanyuedao大侠那样。2 F; G& X7 S* K$ |8 S7 J
. ]$ Z" U% k4 O, k2 w0 I |