public void RotateTest3() { Point point = GeometricSolver.RotatePoint(new Point(0, -1), Math.PI / 2); double x = -1; double y = 0; Assert.AreEqual(point.X, x, 10e-6); Assert.AreEqual(point.Y, y, 10e-6); }
/// <summary> /// Поворот модуля на заданный градус /// </summary> /// <param name="module"></param> /// <param name="angle"></param> public static void RotateModule(Module module, double angle) { double radians = angle * Math.PI / 180; Point newCoordinate1 = GeometricSolver.RotatePoint(module.LeftUpperBound, radians); Point newCoordinate2 = GeometricSolver.RotatePoint(module.RighLowerBound, radians); module.LeftUpperBound = GeometricSolver.GetMin(newCoordinate1, newCoordinate2.X, newCoordinate2.Y); module.RighLowerBound = GeometricSolver.GetMax(newCoordinate2, newCoordinate1.X, newCoordinate1.Y); foreach (var pad in module.Pads) { pad.Position = GeometricSolver.RotatePoint(pad.Position, radians); } module.Rotate += angle; }