正文

游戲數(shù)學(xué)(34)

精通C#游戲編程 作者:(英)斯庫勒


 

圖8-21使用3個軸向量和一個位置向量(原點)來表示矩陣。XxXyXz描述了x向量,YxYyYz描述了y向量,ZxZyZz描述了z向量,OxOyOz描述了原點向量。這些向量是模型的軸及其原點??梢允褂盟鼈儊砜焖俅_定對象的位置以及對象在X、Y和Z軸上面對的方向。如果所有的軸都被歸一化,那么對象不被縮放;如果軸的長度都為2,那么對象被放大到原來的兩倍。這種可視化的思考矩陣的方法使得它們更易于使用。

圖8-21中的最后一列是[0,0,0,1]。這個列中的值不會改變,它們只在計算投影(從3D空間變換到2D空間)時使用。這種投影操作不太常見,所以我們將使用的矩陣為4×3矩陣。最后一列將始終為[0,0,0,1]。

在介紹矩陣操作之前,先創(chuàng)建一個基本的類。

public class Matrix

{

double _m11, _m12, _m13;

double _m21, _m22, _m23;

double _m31, _m32, _m33;

double _m41, _m42, _m43;

}

這個Matrix類是一個4×3矩陣。它的成員變量的分布方式與圖8-18類似,但是沒有第4列(我們知道第4列總是[0,0,0,1],所以不需要存在這幾個值)。Vector、Color和Point都是結(jié)構(gòu),但是Matrix是一個更大的結(jié)構(gòu),所以把它聲明成了一個類。

在下面的小節(jié)中,我們將為Matrix類添加各種操作。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號