Matrix4是由<<WebGL編程指南>>作者寫的提供WebGL的4*4矩陣操作的方法庫,簡化我們編寫的代碼。源代碼共享地址,點擊鏈接:Matrix4源代碼。
下面羅列了Matrix4庫的所有方法:
1.setIdentity()
將Matrix4實例初始化為單位陣
2.setTranslate(x, y, z)
將Matrix4實例設置為平移變換矩陣,在x軸上平移的距離為x,在y軸上平移的距離為y,在z軸上平移的距離為z
3.setRotate(angle, x, y, z)
將Matrix4實例設置為旋轉變換矩陣,旋轉角度為angle,旋轉軸為(x, y, z)。旋轉軸(x,y,z)無需歸一化
4.setScale(x, y, z)
將Matrix4實例設置為縮放變換矩陣,在三個軸上的縮放因子分別為x、y、z
5.translate(x, y, z)
將Matrix4實例生意一個平移變換矩陣(該平移矩陣在x軸上的平移距離為x,在y軸上的平移距離為y,在z軸上的平移距離為z),所得到的結果存儲在Matrix4中
6.rotate(angle, x, y, z)
將Matrix4實例乘以一個旋轉變換矩陣(該旋轉矩陣旋轉的角度為angle,旋轉軸為(x、y、z)。旋轉軸(x、y、z)無須歸一化),所得的記過還存儲在Matrix4中
7.scale(x, y, z)
將Matrix4實例乘以一個縮放變換矩陣(該縮放矩陣在三個軸上的縮放因子分別為x、y、z。),所得結果還存儲在Matrix4中
8.set( m )
將Matrix4實例設置為m,m必須也是一個Matrix4實例
9.elements
類型化數組(Float32Array)包含了Matrix4實例的矩陣元素
說明:單位陣在矩陣乘法中的行為,就像數字1在乘法中的行為一樣。將一個矩陣生意單位陣,得到的結果和原矩陣完全相同。在單位陣中,對角線的元素為1.0,其余的元素為0.0。
10. multiply(matrix)
兩個矩陣相乘,返回的結果為一個新的matrix4對象,並且值為兩個矩陣相乘的結果。例如:
var modelViewMatrix = viewMatrix.multiply(modelMatrix);
11.setOrtho(left, right, bottom, top, near, far)
通過各參數計算正射投影矩陣,將其存儲在Matrix4中。注意,left不一定與right相等,bottom不一定與top相等,near與far不相等。參數:
left、right:指定近裁剪面的左邊界和右邊界
bottom、top:指定近裁剪面的上邊界和下邊界
near、far:指定近裁剪面和遠裁剪面的位置,即可視空間的近邊界和遠邊界
12.setPerspective(fov, aspect, near, far)
通過各參數計算透視投影矩陣,將其存儲在Matrix4中。注意,near的值必須小於far。參數:
fov:指定垂直視角,即可視空間頂面和底面鍵的夾角,必須大於0
aspect:指定近裁剪面的高寬比(寬度/高度)
near、far:指定近裁剪面和遠裁剪面的位置,即可視空間的近邊界和遠邊界(near和far必須都大於0)
注意,第二個參數aspect是近裁剪面的寬高比,而不是水平視角(第一個參數是垂直視角)。比如說,如果近裁剪面的高度100和寬度200,那么寬高比為2。
13.setInverseOf (m)
使自身稱為矩陣m的逆矩陣。
14.transpose()
對自身進行轉置操作,並將自身設為轉置后的結果。
