0
使用下面的圖書館我「米:4x4矩陣乘法爲了
https://github.com/greggman/tdl/blob/master/tdl/math.js
然而,問題是不同的結果時,我採取不同的方式相同的步驟,我越來越:
//Example 1
m = tdl.math.matrix4.identity();
tdl.math.matrix4.rotateX(m, 90*(Math.PI/180));
tdl.math.matrix4.translate(m, [10,20,30]);
console.log (m); //output down below 1
//Example2
i = tdl.math.matrix4.identity();
r = tdl.math.matrix4.rotationX(90*(Math.PI/180));
t = tdl.math.matrix4.translation([10,20,30]);
m = tdl.math.matrix4.mul(i, r);
m = tdl.math.matrix4.mul(m, t);
console.log(m); // output down below 2
這兩種方法都有動作的順序相同,即
- 身份
- 繞×90度
- 10倍平移,20Y
但是,輸出是不一樣的,這裏是輸出1:
[1, 0, 0, 0, 0, 6.123233995736766e-17, 1, 0, 0, -1, 6.123233995736766e-17, 0, 10, -30, 20.000000000000004, 1]
這裏是輸出2
[1, 0, 0, 0, 0, 6.123233995736766e-17, 1, 0, 0, -1, 6.123233995736766e-17, 0, 10, 20, 30, 1]
爲什麼結果不同,當我似乎採取相同的步驟?
我可以看到,然而,這只是行主要發生。那麼我應該追加而不是前置權?你現在正在預先考慮。 – David
好吧,因爲我自己的矩陣類現在和給定的庫有相同的結果,我只會接受我仍然是noob的事實,然後繼續前進。謝謝你今天幫我兩次:)這真是令人厭惡。 – David
這就是主要專業和專業專業之間的差異。 rowMajorA * rowMajorB使用rowMajorMultiply = columnMajorB * columnMajorA使用columnMajorMultiply – gman