public IEnumerator <SPoint> GetEnumerator()
        {
            var controlPoints = delegateStroke.ToList();

            for (int i = 0; i < controlPoints.Count - 1; i++)
            {
                var newPoints = GetPointsBetween(controlPoints[i], controlPoints[i + 1], (i != 0));
                foreach (var p in newPoints)
                {
                    yield return(p);
                }
            }
        }
        public IEnumerator <SPoint> GetEnumerator()
        {
            var controlPoints = delegateStroke.ToList();

            for (int i = 0; i < controlPoints.Count; i++)
            {
                int x      = (int)Math.Round(controlPoints[i].X - Radius * Math.Sin(i * AngularSpeed / 180.0 * Math.PI));
                int y      = (int)Math.Round(controlPoints[i].Y - Radius * Math.Cos(i * AngularSpeed / 180.0 * Math.PI));
                var result = new SPoint(controlPoints[i]);
                result.X = x;
                result.Y = y;
                yield return(result);
            }
        }