DirectX 11遊戲編程學習筆記之3: 第2章Matrix Algebra(矩陣代數)

        本文由哈利_蜘蛛俠原創,轉載請註明出處!有問題歡迎聯繫[email protected]

 

        注:我給的電子版是700多頁,而實體書是800多頁,所以我在提到相關概念的時候,會使用章節號而非頁碼。同樣的情況適合於“龍書”第二版。

 

        上一期的地址:

DX 11遊戲編程系列第2期

 

重點回顧:

===============================================================================

        這一章講的是矩陣代數,其內容與“龍書”第二版第二章基本平行,但是增加了一些理論知識,而且當然也使用的是XNA Math庫而非D3DX了。

        爲了方便,把這一章的學習目標列在這裏:

1、 To obtain an understanding of matrices and the operations defined on them.(理解矩陣及其運算。)

2、 To discover how a vector-matrix multiplication can be viewed as a linear combination.(發現爲何向量與矩陣的乘積可以視爲線性組合。)

3、 To learn what the identity matrix is, and what the transpose, determinant, and inverse of a matrix are.(學習什麼是單位矩陣,什麼是矩陣的轉置、行列式和逆。)

4、 To become familiar with the subset of classes and functions provided by the XNA library used for matrix mathematics.(熟悉XNA 庫所提供的關於矩陣數學的那部分類和函數。)

 

        這一章的內容大部分很簡單,所以這一期是相對輕鬆的。(那麼久好好珍惜吧!)值得注意的有一下一些內容:

 

2.5 The Determinant of a Matrix (矩陣的行列式)

        這一節講的是求一個n階方陣的行列式的方法。如果沒學過線性代數的話,那麼看起來可能覺得比較難;如果學過的話,就可以一掃而過了。推薦學過線性代數後再來看此部分內容。不過其實這也不打緊。這一節和後面的計算矩陣的逆的部分都是僅供參考的,在實際的代碼編寫中根本不需要了解的。

 

2.6 The Adjoint of a Matrix(矩陣的伴隨矩陣)

        這一節講的是伴隨矩陣的定義,是爲下一節的求矩陣的逆做準備的。如前所述,學過線性代數的同學可以略過,沒學過的也不用擔心。

 

2.7 The Inverse of a Matrix(矩陣的逆)

        這一節講的是矩陣求逆的方法,給出了一個求逆的例子,並給出了矩陣的逆的一個重要的性質。如前所述,學過線性代數的同學可以略過,沒學過的也不用擔心。

 

2.8 XNA Matrices(XNA的矩陣)

        這一節講述的是XNA Math 庫中跟矩陣有關的部分。這一節也沒什麼好講的,如果習慣了第1章的話,這個很短的小節也是很快就可以看完的。值得注意的是這一節的第一句話:我們使用1x4維的行向量和4x4維的矩陣來進行點和向量的變換。其理由將在下一章中進行講述。

 

===============================================================================

 

勘誤:

===============================================================================

1、  在第2.3節The Transpose of a Matrix 末尾,列舉矩陣的轉置的性質的時候,最後一條提到了矩陣的逆,而這個要到很後面纔講到。這裏應該提一下的,免得讀者困惑。

2、  在第2.4節The Identity Matrix 末尾,例2.7那裏,題目中的I(i的大寫字母)寫成了l(小寫的L)了。

 

===============================================================================

 

 

習題解答:

===============================================================================

        這一章的習題和上一章一樣,大部分是數學題,少量的是編程題。

 

1-17題:

        這些題大部分是計算題,有幾個是證明題。這些題目對於學過線性代數的人來說都是小菜一碟,有些題甚至可以口算出來。沒有學過線性代數的同學通過學習本章應該也能夠比較輕易地做出來(如果發現做出來有困難,推薦仔細做一遍;或者有時間的話,學習一下線性代數的相關知識)。

 

18題:

        這道題讓我們自己編寫一個函數來實現一個任意維的矩陣的轉置。這個題目很基本,相信學過C++(或者C)的同學都做過類似的習題。這道題實在是太簡單了,從略。

 

19題:

        這道題讓我們用本章學習的知識,通過使用C++的二維數組,自己編寫函數來求一個4x4維矩陣的行列式和逆矩陣。如果是任意階的方針的話,那麼使用書上給出的遞推式定義效率就有點低了;但是由於限制爲4x4維,所以根本就不需要考慮效率問題,因爲不管怎麼做效率都差不多。這樣的題相信大家學習C++的時候也做過吧!所以就從略了。

===============================================================================

 

        好了,這一章的內容真心有點太少了。不管怎麼說,下期再見吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章