• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            天行健 君子當(dāng)自強(qiáng)而不息

            3D數(shù)學(xué) ---- 矩陣的更多知識(shí)(4)

             

            4D向量和4x4矩陣不過是對3D運(yùn)算的一種方便的記憶而已。

             

            4D齊次空間

            4D向量有4個(gè)分量,前3個(gè)是標(biāo)準(zhǔn)的x,y和z分量,第4個(gè)是w,有時(shí)稱作齊次坐標(biāo)。

            為了理解標(biāo)準(zhǔn)3D坐標(biāo)是怎樣擴(kuò)展到4D坐標(biāo)的,讓我們先看一下2D中的齊次坐標(biāo),它的形式為(x, y, w)。想象在3D中w=1處的標(biāo)準(zhǔn)2D平面,實(shí)際的2D點(diǎn)(x, y)用齊次坐標(biāo)表示為(x, y, 1),對于那些不在w=1平面上的點(diǎn),則將它們投影到w=1平面上。所以齊次坐標(biāo)(x, y, w) 映射的實(shí)際2D點(diǎn)為(x/w, y/w)。如圖9.2所示:

            因此,給定一個(gè)2D點(diǎn)(x, y),齊次空間中有無數(shù)多個(gè)點(diǎn)與之對應(yīng)。所有點(diǎn)的形式都為(kx, ky, k),k≠0。這些點(diǎn)構(gòu)成一條穿過齊次原點(diǎn)的直線。

            當(dāng)w=0時(shí),除法未定義,因此不存在實(shí)際的2D點(diǎn)。然而,可以將2D齊次點(diǎn)(x, y, 0)解釋為"位于無窮遠(yuǎn)的點(diǎn)",它描述了一個(gè)方向而不是一個(gè)位置。

            4D坐標(biāo)的基本思想相同,實(shí)際的3D點(diǎn)被認(rèn)為是在4D中w=1"平面"上。4D點(diǎn)的形式為(x, y, z, w),將4D點(diǎn)投影到這個(gè)"平面"上得到相應(yīng)的實(shí)際3D點(diǎn)(x/w, y/w, z/w)。w=0時(shí)4D點(diǎn)表示"無限遠(yuǎn)點(diǎn)",它描述了一個(gè)方向而不是一個(gè)位置。

             

            4 X 4 平移矩陣

            3x3變換矩陣表示的是線性變換,不包括平移。因?yàn)榫仃嚦朔ǖ男再|(zhì),零向量總是變換成零向量。因此,任何能用矩陣乘法表達(dá)的變換都不包含平移。這很不幸,因?yàn)榫仃嚦朔ê退哪媸且环N非常方便的工具,不僅可以用來將復(fù)雜的變換組合成簡單的單一變換,還可以操縱嵌入式坐標(biāo)系間的關(guān)系。如果能找到一種方法將3x3變換矩陣進(jìn)行擴(kuò)展,使它能處理平移,這將是一件多么美妙的事情啊。4x4矩陣恰好提供了一種數(shù)學(xué)上的"技巧"使我們能夠做到這一點(diǎn)。

            暫時(shí)假設(shè)w總是等于1。那么,標(biāo)準(zhǔn)3D向量[x, y, z]對應(yīng)的4D向量為[x, y, z, 1]。任意3x3變換矩陣在4D中表示為:

            任意一個(gè)形如[x, y, z, 1]的向量乘以上面形式的矩陣,其結(jié)果和標(biāo)準(zhǔn)的3x3情況相同,只是結(jié)果是用w=1的4D向量表示的:

            現(xiàn)在,到了最有趣的部分。在4D中,仍然可以用矩陣乘法來表達(dá)平移,如公式9.10所示,而在3D中是不可能的:

            記住,即使是在4D中,矩陣乘法仍然是線性變換。矩陣乘法不能表達(dá)4D中的"平移",4D零向量也將總是被變換成零向量。這個(gè)技巧之所以能在3D中平移點(diǎn)是因?yàn)槲覀儗?shí)際上是在切變4D空間。與實(shí)際3D空間相對應(yīng)的4D中的"平面"并沒有穿過4D中的原點(diǎn)。因此,我們能通過切變4D空間來實(shí)現(xiàn)3D中的平移。

            設(shè)想沒有平移的變換后接一個(gè)有平移的變換會(huì)發(fā)生什么情況呢?設(shè)R為旋轉(zhuǎn)矩陣(實(shí)際上,R還能包含其他的3D線性變換,但現(xiàn)在假設(shè)R只包含旋轉(zhuǎn)),T為形如公式9.10的變換矩陣:

            將向量v先旋轉(zhuǎn)再平移,新的向量v'計(jì)算如下:

            v' = vRT

            注意,變換的順序是非常重要的。因?yàn)槲覀兪褂玫氖切邢蛄浚儞Q的順序必須和矩陣乘法的順序相吻合(從左到右),先旋轉(zhuǎn)后平移。

            和3x3矩陣一樣,能將兩個(gè)矩陣連接成單個(gè)矩陣,記作矩陣M,如下:

            = RT

            v' = vRT = v(RT) = vM

            觀察M的內(nèi)容:

            注意到,M的上邊3x3部分是旋轉(zhuǎn)部分,最下一行是平移部分。最右一列為[0, 0, 0, 1]T。逆向利用這些信息,能將任意4x4矩陣分解為線性變換部分和平移部分。將平移向量[△x, △y, △z]記作t,則M可簡寫為:

            接下來看w=0所表示的 "無窮遠(yuǎn)點(diǎn)"。它乘以一個(gè)由"標(biāo)準(zhǔn)"3x3變換矩陣擴(kuò)展成的4x4矩陣(不包含平移),得到:

            換句話說,當(dāng)一個(gè)形如[x, y, z, 0]的無窮遠(yuǎn)點(diǎn)乘以一個(gè)包含旋轉(zhuǎn)、縮放等的變換矩陣,將會(huì)發(fā)生預(yù)期的變換。結(jié)果仍是一個(gè)無窮遠(yuǎn)點(diǎn),形式為[x, y, z, 0]。

            一個(gè)無窮遠(yuǎn)點(diǎn)經(jīng)過包含平移的變換可得到:

            注意到結(jié)果是一樣的(和沒有平移的情況相比)。換句話說,4D向量中的w分量能夠"開關(guān)"  4x4 矩陣的平移部分。這個(gè)現(xiàn)象是非常有用的,因?yàn)橛行┫蛄看?#8220;位置”,應(yīng)當(dāng)平移,而有些向量代表“方向”,如表面的法向量,不應(yīng)該平移。從幾何意義上說,能將第一類數(shù)據(jù)當(dāng)作"點(diǎn)",第二類數(shù)據(jù)當(dāng)作"向量".

            使用4x4矩陣的一個(gè)原因是4x4變換矩陣能包含平移。當(dāng)我們僅為這個(gè)目的使用4x4矩陣時(shí),矩陣的最后一列總是[0, 0, 0, 1]T。既然是這樣,為什么不去掉最后一列而改用4x3矩陣呢?根據(jù)線性代數(shù)法則,由于多種原因,4x3矩陣不符合我們的需求,如下:

            (1)不能用一個(gè)4x3矩陣乘以另一個(gè)4x3矩陣。

            (2)4x3矩陣沒有逆矩陣,因?yàn)樗皇且粋€(gè)方陣。

            (3)一個(gè)4D向量乘以4x3矩陣時(shí),結(jié)果是一個(gè)3D向量。

            為了嚴(yán)格遵守線性代數(shù)法則,我們加上了第4列。當(dāng)然在代碼中,可以不受代數(shù)法則的約束。
             


            posted on 2008-01-16 16:42 lovedday 閱讀(1702) 評論(0)  編輯 收藏 引用

            公告

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            隨筆分類(178)

            3D游戲編程相關(guān)鏈接

            搜索

            最新評論

            久久综合伊人77777| 久久受www免费人成_看片中文 | 99久久国产综合精品五月天喷水| 久久综合狠狠综合久久综合88 | 最新久久免费视频| 国产成人久久精品一区二区三区| 久久人人爽人人人人爽AV| 99精品久久久久久久婷婷| 伊人久久大香线蕉精品| 伊人久久成人成综合网222| 亚洲精品无码成人片久久| 亚洲国产天堂久久综合网站| 日韩中文久久| 国内精品免费久久影院| 久久国产精品无码HDAV| 少妇久久久久久被弄到高潮| 久久久久中文字幕| 一本久久a久久精品vr综合| 国产精品美女久久久久av爽 | 中文字幕精品无码久久久久久3D日动漫| 日韩影院久久| 精品久久久久久久久久中文字幕| av色综合久久天堂av色综合在| 国产精品免费久久久久电影网| 亚洲AV无码久久精品狠狠爱浪潮| 无码8090精品久久一区| 欧美精品一区二区精品久久| 色婷婷综合久久久久中文一区二区| 亚洲v国产v天堂a无码久久| 人人狠狠综合久久亚洲88| 国产精品99久久免费观看| 无码任你躁久久久久久| 开心久久婷婷综合中文字幕| 91精品日韩人妻无码久久不卡| 久久国产精品99精品国产987| 久久精品www人人爽人人| 久久亚洲精精品中文字幕| 亚洲日本va中文字幕久久| 国内精品九九久久精品| 国产亚洲精品久久久久秋霞| 伊人色综合久久天天人手人婷|