我正在尝试使用 System.Numerics.Matrix4x4 和 SDL2 旋转立方体以进行图形输出。我很难理解矩阵旋转的概念。
我可以做到,就像这样:
matrix *= Matrix4x4.CreateRotationX(deg);
matrix *= Matrix4x4.CreateRotationY(deg);
matrix *= Matrix4x4.CreateRotationZ(deg);
然后我在立方体中的点上使用 Vector3.Transform() 并在它们之间画线。看起来……好吧,它在原地旋转。但是我如何获得透视?如何让相机融入其中?
这个方法怎么样:
matrix *= Matrix4x4.CreateFromAxisAngle(new Vector3(2, 2, 2), (float)rad);
我不确定我应该如何在那里使用向量,或者它应该做什么。我的立方体奇怪地生长和伸展......参见当矩阵在立方体上应用 10、45 和 90 度时的图片:
https://www.dropbox.com/s/hui5jvky7cexciq/10_45_90.png?dl=0
我应该如何正确地做到这一点?