矢量旋轉(zhuǎn)變換_第1頁
矢量旋轉(zhuǎn)變換_第2頁
矢量旋轉(zhuǎn)變換_第3頁
矢量旋轉(zhuǎn)變換_第4頁
矢量旋轉(zhuǎn)變換_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、向量的旋轉(zhuǎn)變換1基礎的2-D繞原點旋轉(zhuǎn)在2-D的迪卡爾坐標系中,一個位置向量的旋轉(zhuǎn)公式可以由三角函數(shù)的幾何意義推出。比如上圖所示是位置向量R逆時針旋轉(zhuǎn)角度B前后的情況。在左圖中,我們有關系:x0=|R|*cosAy0=|R|*sinA2=cosA=x0/|R| sinA=y0/|R|下圖中,x1=|R|*cos(A+B) y1=|R|*sin(A+B)其中(x1,y1)就是(x0,y0)旋轉(zhuǎn)角B后得到的點,也就是位置向量R最后指向的點。 3x1=|R|*cos(A+B) y1=|R|*sin(A+B)我們展開cos(A+B)和sin(A+B),得到x1=|R|*(cosAcosB-sinAsi

2、nB)y1=|R|*(sinAcosB+cosAsinB)現(xiàn)在把 cosA = x0/|R| sinA = y0/|R|代入上面的式子,得到x1 = |R|*(x0*cosB/|R|-y0*sinB/|R|)y1 = |R|*(y0*cosB/|R|+x0*sinB/|R|)= x1 = x0 * cosB - y0 * sinB y1 = x0 * sinB + y0 * cosB現(xiàn)在我要把這個旋轉(zhuǎn)公式寫成矩陣的形式即:2-D旋轉(zhuǎn)變換矩陣:4平面旋轉(zhuǎn)矩陣56平移部分平移不是線性的,不能表示為與22矩陣相乘的形式。例如要從點(2, 1)開始,將其旋轉(zhuǎn) 90度,在x方向?qū)⑵淦揭?個單位,在y方向

3、將其平移4個單位??赏ㄟ^先使用矩陣乘法再使用矩陣加法來完成此操作。7iP1B110 xyPiBi8補充部分9平移部分平移不是線性的,不能表示為與22矩陣相乘的形式。例如要從點(2, 1)開始,將其旋轉(zhuǎn) 90度,在x方向?qū)⑵淦揭?個單位,在y方向?qū)⑵淦揭?個單位??赏ㄟ^先使用矩陣乘法再使用矩陣加法來完成此操作。10后面跟一平移(與 12 矩陣相加)的線性變換(與 22 矩陣相乘)稱為仿射變換。放射變換(先乘后加)可以通過乘以一個3*3的矩陣來實現(xiàn),若要使其起作用,平面上的點必須存儲于具有虛擬第三坐標的 13 矩陣中。通常的方法是使所有的第三坐標等于 1。例如,矩陣 2 1 1 代表點 (2, 1

4、)。例如與單個 33 矩陣相乘的仿射變換(旋轉(zhuǎn) 90 度;在 x 方向上平移 3 個單位,在 y 方向上平移 4 個單位):11在前面的示例中,點(2,1)映射到了點(2, 6)。其中33 矩陣的第三列包含數(shù)字0,0,1。對于仿射變換的33 矩陣都是這樣的。重要的數(shù)字是列 1 和列 2 中的 6 個數(shù)字。矩陣左上角的 22 部分表示變換的線性部分,第 3 行中的前兩項表示平移。12在使用3*3的矩陣做仿射變換時候,表示點的矩陣變成了一個1*3矩陣,這個矩陣中的最后一個值必須設置成1。對于3*3矩陣,其最后一列的值是多少是沒有關系的,因為他們不會影響結(jié)果中的前兩列。不過如上,經(jīng)常將他們設置為0,

5、0,1。這一列對于坐標轉(zhuǎn)換的結(jié)果并沒有任何影響,但是他們是必須的,因為矩陣相乘必須滿足 “相乘的兩個矩陣第一個矩陣的列數(shù)必須與第二個矩陣的行數(shù)相同”。13平面或空間里的每個線性變換(這里就是旋轉(zhuǎn)變換)都對應一個矩陣,叫做變換矩陣。對一個點實施線性變換就是通過乘上該線性變換的矩陣完成的。 把頂點和矩陣相乘,就會發(fā)現(xiàn)矩陣的某些項,扮演著為頂點變換(平移、旋轉(zhuǎn)、縮放)提供參數(shù)的作用。(前人總結(jié)出來,填哪些那些項能得到平移矩陣/縮放矩陣/旋轉(zhuǎn)矩陣)比如平移矩陣,你自己拿一個頂點和它相乘,算一遍,就會發(fā)現(xiàn)它化簡到最后一步時的算式,和頂點平移算式是一樣的。旋轉(zhuǎn)、縮放也是如此。14那么為什么還要和矩陣相乘?直接用平移算式、旋轉(zhuǎn)算式、縮放算式不就行了?不行 因為靠矩陣來計算可以減少計算量。一個頂點要進行多次變換,比如平移后旋轉(zhuǎn)再平移之后再縮放,用簡單算式得算4遍,矩陣只要算一遍。原理就是公式:(頂點矩陣A)矩陣B = 頂點(矩陣A矩陣B),即矩陣接合律的推廣。(矩陣一般不遵守分配律,所以頂點變換有先后順序,一個頂點平移再旋轉(zhuǎn),和旋轉(zhuǎn)再平移,得到的位置不同)即:很容易地進行組合變換以及逆變換。 機器人中可能很多關節(jié)都進行同一套

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論