Esempio n. 1
0
        public Point[] SmoothPath(Point[] path)
        {
            List <Point> smoothedPath = new List <Point>();

            for (int i = 0; i < path.Length; i++)
            {
                var startPoint = path[i];
                smoothedPath.Add(startPoint);

                for (int x = i + 1; x < path.Length; x++)
                {
                    var skippedPoint = path[x];

                    var line = new Line(startPoint, skippedPoint);

                    if (PointMap.IsInterior(line))
                    {
                        i = x - 1;
                    }
                    else
                    {
                        break;
                    }
                }
            }

            return(smoothedPath.ToArray());
        }