得到的Vector3我想我明白矩陣數學不夠好,但顯然我無言以對XNA:從矩陣
這裏的設置:
我在世界上[0,0,0]對象空間。我有一個由鼠標移動控制的相機類,可以在物體周圍旋轉和縮放,以便它始終看着它。這是我如何計算我viewMatrix從相機:
public Matrix viewMatrix {
get {
return
Matrix.CreateFromAxisAngle(Vector3.Up, rotAngle)
* Matrix.CreateFromAxisAngle(Vector3.Left, pitchAngle)
* Matrix.CreateTranslation(0, 0, distance)
;
}
}
我需要能夠讓相機在世界空間中的位置,所以我可以從包裝盒的距離 - 從每個面特別是它的距離的盒子。 如何獲得相機在世界空間座標系中的xyz位置?
我已經試過:
// all of these only return [0, 0, distance];
Vector3 pos = Vector3.Transform(Vector3.Zero, viewMatrix);
Vector3 pos = viewMatrix.Translation;
Vector3 pos = new Vector3(viewMatrix.M41, viewMatrix.M42, viewMatrix.M43);
好像旋轉信息被莫名其妙地丟失。奇怪的是,viewMatrix代碼完美地適用於定位相機!