我有一个超类对象,它代表一个场景中的模型。此对象包含一个3D矢量,position
表示其位置,三个变量x
,y
和z
描述围绕这些轴的旋转。其变换矩阵计算如下:
Matrix.CreateRotationX(x) *
Matrix.CreateRotationY(y) *
Matrix.CreateRotationZ(z) *
Matrix.CreateTranslation(position)
这一切都正常,但在某些情况下,我需要根据标准化方向向量和向上向量计算x
,y
和z
的值。我怎么能这样做?
答案 0 :(得分:0)
不知道如何自己做数学但是不会Matrix.CreateLookAt满足你的需求?
Matrix.CreateLookAt(new Vector3(0, 0, 0), new Vector3(x, y, z), yourUpVector)
* Matrix.CreateTranslation(position);
答案 1 :(得分:0)
将矩阵转换为四元数:
Quaternion q = Quaternion.CreateFromRotationMatrix(matrix);
然后复制并粘贴the last method found on this page并通过它运行四元数。
答案 2 :(得分:0)