Beispiel #1
0
        static public AngleAndDistance GetAngleAndDistance(PointF p1, PointF p2)
        {
            AngleAndDistance angleAndDistance = new AngleAndDistance();

            angleAndDistance.Distance       = HelperFunctions.GetDistanceBetweenTwoPoints(p1, p2);
            angleAndDistance.AngleInDegrees = HelperFunctions.GetAngleBetweenTwoPoints(p1, p2);
            return(angleAndDistance);
        }
Beispiel #2
0
        static public PointF[] RotatePolygon(PointF[] pointArray, double rotationAngle, PointF origin)
        {
            List <PointF> returnPoints = new List <PointF>();

            foreach (PointF point in pointArray)
            {
                PointF           relativePoint        = new PointF(point.X - origin.X, point.Y - origin.Y);
                AngleAndDistance angleAndDistance     = HelperFunctions.GetAngleAndDistance(origin, point);
                PointF           rotatedRelativePoint = HelperFunctions.ConvertAngleAndDistanceToXY
                                                            (angleAndDistance.AngleInDegrees + rotationAngle, angleAndDistance.Distance);
                returnPoints.Add(new PointF(rotatedRelativePoint.X + origin.X, rotatedRelativePoint.Y + origin.Y));
            }

            return(returnPoints.ToArray());
        }