static public Matrix CreateRotationX(double Degrees) { Matrix M1 = new Matrix(); double Radians = Degrees * Math.PI / 180; M1[0][0] = 1; M1[0][1] = 0; M1[0][2] = 0; M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = Math.Cos(Radians); M1[0][2] = -Math.Sin(Radians); M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = Math.Sin(Radians); M1[0][2] = Math.Cos(Radians); M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = 0; M1[0][2] = 0; M1[0][3] = 1; return M1; } static public Matrix CreateRotationY(double Degrees) { Matrix M1 = new Matrix(); double Radians = Degrees * Math.PI / 180; M1[0][0] = Math.Cos(Radians); M1[0][1] = 0; M1[0][2] = Math.Sin(Radians); M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = 1; M1[0][2] = 0; M1[0][3] = 0; M1[0][0] = -Math.Sin(Radians); M1[0][1] = 0; M1[0][2] = Math.Cos(Radians); M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = 0; M1[0][2] = 0; M1[0][3] = 1; return M1; } static public Matrix CreateRotationZ(double Degrees) { Matrix M1 = new Matrix(); double Radians = Degrees * Math.PI / 180; M1[0][0] = Math.Cos(Radians); M1[0][1] = -Math.Sin(Radians); M1[0][2] = 0; M1[0][3] = 0; M1[0][0] = Math.Sin(Radians); M1[0][1] = Math.Cos(Radians); M1[0][2] = 0; M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = 0; M1[0][2] = 1; M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = 0; M1[0][2] = 0; M1[0][3] = 1; return M1; } static public Matrix CreateScale(double Scale) { Matrix M1 = new Matrix(); M1[0][0] = Scale; M1[0][1] = 0; M1[0][2] = 0; M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = Scale; M1[0][2] = 0; M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = 0; M1[0][2] = Scale; M1[0][3] = 0; M1[0][0] = 0; M1[0][1] = 0; M1[0][2] = 0; M1[0][3] = 1; return M1; }