我正在编写一个 C# 程序,它有一个立方体对象,允许用户在 xy 和 z 轴上移动它。但是我希望他们也能够旋转它。
我的矩阵定义如下: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);
它怎么会从中心旋转?