Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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;
        }