Esempio n. 1
0
        public void Rotate(double sx, double sy, List <IPointShape> points, ref double rotateAngle)
        {
            var centerX = Bounds.CenterX;
            var centerY = Bounds.CenterY;
            var p0      = new Point2(centerX, centerY);
            var p1      = new Point2(sx, sy);
            var angle   = p0.AngleBetween(p1) - 270.0;
            var delta   = angle - rotateAngle;
            var radians = delta * (Math.PI / 180.0);
            var matrix  = Matrix2.Rotation(radians, centerX, centerY);

            TransformPoints(ref matrix, points);
            rotateAngle = angle;
            Update();
        }