我在寫一個C#程序,它有一個立方體對象,允許用戶在X軸和Z軸上移動它。不過,我希望他們能夠旋轉它。C#旋轉矩陣
我矩陣的定義是這樣:public double[, ] matrix = new double[4, 4];
因此,例如,我能夠通過這個代碼來縮放立方體。
public void initAsScalingMatrix(double sx, double sy, double sz) {
initAsIdentityMatrix();
matrix[0, 0] = sx; // scale x
matrix[1, 1] = sy; // scale y
matrix[2, 2] = sz; // scale z
matrix[3, 3] = 1;
}
所以我的問題是。我怎樣才能使用相同的方法繞着例如x軸旋轉立方體?
編輯---
嗨,
我想通了如何旋轉它,但它是從在左上角的方式這樣做。
matrix[0, 0] = Math.Cos(rz);
matrix[0, 1] = Math.Sin(rz);
matrix[1, 0] = -(Math.Sin(rz));
matrix[1, 1] = Math.Cos(rz);
它怎麼會從中心旋轉?
也許它只是我,但我不明白你的代碼是如何工作的。請解釋一下,矩陣中的數字意味着什麼。 – Ari 2013-03-13 09:51:10
要使它從中心旋轉,首先需要對其進行翻譯以便場景的中心位於原點,然後應用旋轉矩陣,然後將場景翻譯回其原始位置。 – antonijn 2013-03-13 09:59:29