※ 引述《scya (idiot)》之銘言:
: 我想請教一下板上各位神人
: 要如何以一個向量為軸,將另一個向量旋轉阿??
: 比方說我有向量(2,2,2)為軸,要將向量(3,2,1)依照安培右手順時針旋轉50度
: 得到向量j,那我該如何求出j呢??
以下是剛剛夢到的內容
若v1為旋轉軸 v2為待旋轉向量 ( v1,v2 =\= 0 )
設 v2 = a + b
a:v2平行v1方向的分量
<v2,v1>
( a = --------- v1 ) 此為v2至v1之正射影量 <.,.>為內積符號
<v1,v1>
b:v2垂直v1方向的分量
( b = v2 - a )
以上可知 不同角度的旋轉過程中 a與角度無關 b與角度有關
==========================================================
<1>高中可了解的做法如下
先求 c = v1外積b ( b放v1後面是為了遵守右手循環規則 )
於是現在有了 b,c,v1 (依照右手循環規則的順序) 這3個向量
b c
現在將 b 和 c 歸一化 : e1 = ------------ ; e2 = ------------
(<b,b>)^0.5 (<c,c>)^0.5
現在b以 e1,e2 表示 : b = x e1 + y e2 ( x為b之長度 , y=0 )
( b在e1方向為x軸,e2方向為y軸所張的平面上座標為r=[x y]^T )
[ cosΘ -sinΘ ]
令旋轉矩陣 L= [ sinΘ cosΘ ] b經旋轉Θ後之座標為 r'=[x' y']^T
則有以下關係 r' = L r
由求得的 x',y'可知b經旋轉過後為 b' = x' e1 + y' e2
故所求 v2經旋轉過後為 v2' = a + b'
=====================================================
<2> 若是大學生且修過線性代數
觀察得知此種旋轉變換為線性變換
則接下來就是標專流程:
1. 找標準基底下 v2之座標表示
2. 求出標準積底對應此線性變換的矩陣
3. 新座標=變換矩陣 乘 舊座標
4. 還原新座標為向量
此種方法可解任意給定旋轉之問題 ( 可以3個軸都在轉 , 不限此題只1軸轉 )
不知道這樣做是否夠標準 還請板上先進幫debug
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.46.129