實際做題中我們可能會遇到很多有關及計算幾何的問題,其中有一類問題就是向量的旋轉問題,下面我們來具體**一下有關旋轉的問題。
首先我們先把問題簡化一下,我們先研究乙個點繞另乙個點旋轉一定角度的問題。已知a點座標
(x1,y1),b
點座標(x2,y2)
,我們需要求得
a點繞著
b點旋轉θ度後的位置。
a點繞b點旋轉θ角度後得到的點,問題是我們要如何才能得到a'
點的座標。(向逆時針方向旋轉角度正,反之為負)研究乙個點繞另乙個點旋轉的問題,我們可以先簡化為乙個點繞原點旋轉的問題,這樣比較方便我們的研究。之後我們可以將結論推廣到一般的形式上。
令b是原點,我們先以
a點向逆時針旋轉為例,我們過
a' 做
ab的垂線,交ab於
c,過c做
x軸的平行線交過
a' 做
x軸的垂線於
d。過點c做
x軸的垂線交
x軸於點e。
的座標(x,y)
,a'
座標(x1,y1),b
的座標(0,0)
。我們可以輕鬆的獲取
ab的長度,而且顯而易見
a' b
長度等於
ab。假設我們已知θ角的大小那麼我們可以很快求出bc和
a' c
的長度。
bc=a' b x cos
θ,a' c=a' b x sinθ。
因為∠a' cb
和∠dce
為直角(顯然的結論),則∠
a' cd +
∠dcb =
∠ecb +
∠dcb=90度。
則∠a' cd=
∠ecb
,∠a' dc=
∠ceb=90
度,因此可以推斷⊿
ca' d
∽⊿cbe
。由此可以推出的結論有:
bc/be=a' c/a' d和
bc/ce=a' c/cd
當然了dc
和a' d
都是未知量,需要我們求解,但是我們卻可以通過求出
c點座標和
e點座標間接獲得
a' c和cd
的長度。我們應該利用相似的知識求解
c點座標。
c點橫座標等於:
((|ab| x cos
θ) / |ab|) * x = x*cosθ
c點縱座標等於:
((|ab| x cos
θ) / |ab|) * y = y*cosθ
則ce和
be的的長度都可以確定。
我們可以通過相⊿ca' d
∽⊿cbe
得出:
a'd = x * sinθ
dc = y * sinθ
a'd是通過bc/be = a'c/a'd得出的
dc是通過bc/ec = a'c/dc得出的
那麼接下來很容易就可以得出:
x1 = x*cosθ
- y * sin
θ
y1 = y*cos
θ + x * sinθ
則a'
的座標為
(x*cos
θ- y * sin
θ, y*cos
θ + x * sinθ)
我們可以這樣認為:對於任意點a(x,y),a
非原點,繞原點旋轉θ角後點的座標為:
(x*cos
θ- y * sin
θ, y*cos
θ + x * sinθ)
接下來我們對這個結論進行一下簡單的推廣,對於任意兩個不同的點a和b
(對於求點繞另乙個點旋轉後的座標時,
a b重合顯然沒有太大意義),求a點繞
b點旋轉θ角度後的座標,我們都可以將
b點看做原點,對a和
b進行平移變換,計算出的點座標後,在其橫縱座標上分別加上原
b點的橫縱座標,這個座標就是
a' 的座標。
推廣結論:對於任意兩個不同點a和b
,a繞b
旋轉θ角度後的座標為: (δ
x*cosθ-
δy * sin
θ+ xb,
δy*cos
θ +
δx * sin
θ+ yb )
注:xb、yb
為b點座標。
結論的進一步推廣:對於任意非零向量ab
(零向量研究意義不大),對於點
c進行旋轉,我們只需求出點a和
b對於點
c旋轉一定角度的座標即可求出旋轉後的向量
a' b'
,因為向量旋轉後仍然是一條有向線段。同理,對於任意二維平面上的多邊形旋轉也是如此。
向量旋轉公式
在二維座標系中,乙個位置向量的旋轉公式可以由三角函式的幾何意義推出。比如上圖所示是位置向量r逆時針旋轉角度b前後的情況。在左圖中,我們有關係 x0 r cosa cosa x0 r y0 r sina sina y0 r 在右圖中,我們有關係 x1 r cos a b y1 r sin a b 其中...
根據旋轉前後的向量求旋轉矩陣
在cloundcompare開源裡有矩陣的對應介面,親測可用,非常準確,把 貼下面供開發者使用。其中的dot函式是三維向量的點積函式 附內部實現inline type dot const vector3tpl v const static ccglmatrixtplfromtorotation co...
空間向量繞任一向量旋轉計算
假定向量p繞單位向量a旋轉角度 得到新的向量p 則 p p cos a p sin a a p 1 cos 其中a為單位向量,旋轉角度 為逆時針方向旋轉的角度。假定向量p的座標為 px,py,pz 向量a的座標為 ax,by,cz 且 a p ay pz az py,ax pz az px ax p...