示例#1
0
        private void Merge(int left, int mid, int right)
        {
            int i    = left,
                j    = mid + 1,
                top  = 0;
            var data = new Point[right + 1];

            while (i <= mid && j <= right)
            {
                if (cmp(_Points[i], _Points[j]))
                {
                    data[top++] = _Points[i++];
                }
                else
                {
                    data[top++] = _Points[j++];
                }
            }

            while (i <= mid)
            {
                data[top++] = _Points[i++];
            }

            while (j <= right)
            {
                data[top++] = _Points[j++];
            }

            for (i = 0, j = left; i < top; i++, j++)
            {
                _Points[j] = Vector2.FromPoint(data[i].X, data[i].Y);
            }
        }
示例#2
0
 public static Vector2 FromPoint(Point p)
 {
     return(Vector2.FromPoint(p.X, p.Y));
 }