天天看點

3D數學讀書筆記——多坐标系和向量基礎 第一個知識點:多坐标系第二個知識點:向量基礎

                                             本系列文章由birdlove1987編寫,轉載請注明出處。  

                                             文章連結: 

         基礎:隻要標明原點和坐标軸就能在任何地方建立坐标系

         從問題問出發:為什麼要使用多坐标系,一個3d系利用其無限延伸性,即可包含空間中所有的點,建立一個統一的世界,這樣不是更簡單嗎?

實踐中的答案:大量實踐發現,在不同的環境下使用不同的坐标系更加友善(鄧爺爺說過:實踐是檢驗真理的唯一準繩!)

        多坐标系的曆史淵源:亞裡士多德在他的著作《天文學》與《實體學》中提出了地心說,認為地球是宇宙的原點。阿裡斯塔克斯提出了日心說,認為太陽

才是宇宙的原點。可以看到早在兩千多年前多坐标的選擇就是讨論的熱點了。

3D數學讀書筆記——多坐标系和向量基礎 第一個知識點:多坐标系第二個知識點:向量基礎
3D數學讀書筆記——多坐标系和向量基礎 第一個知識點:多坐标系第二個知識點:向量基礎

        1.使用多坐标系的原因是對某些資訊智能在特定的上下文環境中獲得。在計算機建立虛拟世界時,應該選擇較為簡單的坐标系,而不是較複雜的。所有的這些

坐标系都是平等的隻是在某些環境中,有一些更合适而已。

        2.一些計算機建立虛拟世界時有用的坐标系:

i. 世界坐标系:(1)世界坐标系是一個特殊的坐标系,它建立了描述其他坐标系所需要的參考架構。另一方面,能夠用世界坐标系描述其他坐标系的位置,而不

是用更大的、外部的坐标系來描述世界坐标系。

                  (2)從非技術意義上講,世界坐标系所建立的正是我們所“關注”的最大的坐标系,是以世界坐标系不必是整個世界。

                  (3)世界坐标系也被廣泛稱作全局坐标系或者是宇宙坐标系。

ii. 物體坐标系:(1)物體坐标系是和特定物體相關聯的坐标系。每個物體都有它們獨立的坐标系。當物體移動或改變方向時,和該物體相關聯的的坐标系将随

之移動或改變方向。

                   (2)物體坐标系中也能像指定方向一樣指定位置,即物體坐标系的相對位置。

                   (3)某些情況下,物體坐标系也被稱作模型坐标系。因為模型定點的坐标都是在模型坐标系中描述的,有時候他也稱作身體坐标系。(例如

遊戲人物的模型繪制定位)。

iii.錄影機坐标系:(1)錄影機坐标系适合觀察者密切相關的坐标系(一般就是遊戲中的主視角)。

                  (2)錄影機坐标系和螢幕坐标系相似,差别在于錄影機坐标系處于3d空間中而螢幕坐标系在2d平面裡。

                  (3)錄影機坐标系系中,錄影機在原點,x軸向右,z軸向前即朝向螢幕内測,y軸向上且不是世界坐标系的上方,而是錄影機坐标系的上方。

                       ps:使用的是左手坐标系(俺是左撇子—_—!嘿嘿!)。

3D數學讀書筆記——多坐标系和向量基礎 第一個知識點:多坐标系第二個知識點:向量基礎

iv. 慣性坐标系:(1)慣性坐标系,是在世界坐标系到物體坐标系的“中間件”。(轉換模式:世界坐标系—> 慣性坐标系—>物體坐标系)。

                (2)從物體坐标系轉換到慣性坐标系隻需要旋轉,從慣性坐标系旋轉到世界坐标系隻需要平移。請對照下圖自己進行測試!

3D數學讀書筆記——多坐标系和向量基礎 第一個知識點:多坐标系第二個知識點:向量基礎

 v.嵌套式坐标系:(1)嵌套式坐标系描述的之一種關系,根據物體運動的複雜性,物體能在不同層次上分為許多不同的子空間。我們稱子坐标系嵌入在父坐标系

中,這種坐标系的父—子關系定義了一種層次的或樹狀的坐标系。

                (2)通過把物體打散成嵌套式地、按層次結構組織的對象序列,在物體運動時,動作就很容易獨立計算,并通過線性變換工具組合起來。

                (3)階層化的嵌套坐标系是動态的,能夠以最友善于表達重要資訊的方式經行組織。

       再從問題出發:怎樣在一個坐标系中描述另一個坐标系呢?

       答案:坐标系位置的描述其實很直接的,所有做的一切就是描述原點的位置和坐标軸的方向。也就是說在建立多坐标系時,要同時确定這兩項内容。

         關于向量:(1)向量是2d、3d數學研究的标準工具。

                       (2)對于數學家而言,向量就是一個數字清單,對于程式員而言則是一種相似的概念——數組。

                       (3)區分向量和标量,向量是有方向的量,标量是沒有方向的量。

        1. 向量的次元:向量的次元就是向量包含的“數”的數目。向量可以有任意正整數維。遊戲3d中主要讨論2維,3維和4維。

   2. 向量的記法:(1) 用[ ]括起來,數字用逗号隔開如 [ 1 , 2 , 3 ] 在等式中通常省略逗号。

                            (2)水準書寫的是行向量,垂直書寫的是列向量。

                            (3)我們可以使用整數下标來引用向量的某個分量。用x,y代表2d向量的分量,x,y,z代表3d向量分量,x,y,z,w代表4d向量分量。

3D數學讀書筆記——多坐标系和向量基礎 第一個知識點:多坐标系第二個知識點:向量基礎

            關于向量:(1)從幾何意義上說,向量是有大小和方向的有向線段。

                         (2)向量的大小就是向量的長度也就是模,向量有非負的長度。

                         (3)向量的方向描述了空間中向量的指向。

         1.向量的位置:向量其實沒有位置,因為這個原因,所有能在圖的任何地方表示,隻要方向和長度的表示正确即可,我們經常會利用向量的這個優點,将向量

平移到圖中更有用的位置。

    2.向量的表達:(1)向量中的數表達了向量在每個次元上的有向位移。

                  (2)2d向量列出的是沿x坐标軸方向和y坐标軸方向的位移。

                  (3)3d包含了三個數 x,y,z 分别度量向量在 x,y,z軸方向上的位移。

              ps:思考向量所代表的位移的一個好辦法是将向量分解成與軸平行的分量,把這些分量的位移組合起來,就得到了向量作為整體所代表的的位移。

3D數學讀書筆記——多坐标系和向量基礎 第一個知識點:多坐标系第二個知識點:向量基礎

       3. 向量與點:(1)點有位置,但點沒有實際的大小和厚度(其實在光栅化的時候是有的),向量有大小和方向,但是沒有位置。點描述位置,向量描述位移。

                (2)我們可以通過向量坐标原點移動到某一點,從原點開始,按向量 [x,y] 所代表的的位移移動,總會到達點(x,y)所代表的的位置,也可以說

向量 [x,y] 描述了原點到點(x,y)的位移量。

3D數學讀書筆記——多坐标系和向量基礎 第一個知識點:多坐标系第二個知識點:向量基礎

                                             (3)重要的是要了解點和向量在概念上完全不同,而在數學上确實等價的。如2d點有x,y表示,向量也一樣。

         ps:記得考研的時候張宇老師在視訊裡說過,線性代數研究的就是向量的關系,不過真的很喜歡向量,簡單到位!

—end—

           參考文獻:(1)《3d math primer for graphics and game development》

                 (2)百度百科                                                                             

繼續閱讀