public static Matrix <double> GenerateRotate3D(double angleX, double angleY, double angleZ = 0, AngleMode angleMode = AngleMode.Radians, double centerX = 0, double centerY = 0, double centerZ = 0) { var translation = GenerateTranslate3D(centerX, centerY, centerZ); angleX = angleMode == AngleMode.Radians ? angleX : AngleConverter.ConvertDegreesToRadians(angleX); angleY = angleMode == AngleMode.Radians ? angleY : AngleConverter.ConvertDegreesToRadians(angleY); angleZ = angleMode == AngleMode.Radians ? angleZ : AngleConverter.ConvertDegreesToRadians(angleZ); // TODO: Calculate short var rotationX = new Matrix <double>(3, 3); rotationX[0, 0] = 1; rotationX[0, 1] = 0; rotationX[0, 2] = 0; rotationX[1, 0] = 0; rotationX[1, 1] = Math.Cos(angleX); rotationX[1, 2] = -Math.Sin(angleX); //rotationX[]; Matrix <double> rotationY = new Matrix <double>(3, 3); Matrix <double> rotationZ = new Matrix <double>(3, 3); return(new Matrix <double>()); // temp }
public void ConvertDegreesToRadians_ShouldReturnValidValue() { Assert.Equal(0, AngleConverter.ConvertDegreesToRadians(0)); Assert.True(Math.Abs(Math.PI / 2 - AngleConverter.ConvertDegreesToRadians(90.0f)) <= 0.0000001); Assert.True(Math.Abs(-Math.PI * 2 - AngleConverter.ConvertDegreesToRadians(-360.0)) <= 0.0000001); }