Ejemplo n.º 1
0
        public override List <Point> Points()
        {
            var len = vertices.Count;

            controlPolygonPoints = new List <Point>();
            for (var i = 0; i < len - 1; i++)
            {
                var line = new BresenhamLine(vertices[i], vertices[i + 1], f);
                controlPolygonPoints.AddRange(line.Points());
            }
            curvePoints = GetCurvePoints();
            var result = new List <Point>();

            // 手动将两个list合并成一个新的list
            foreach (var p in vertices)
            {
                result.Add(p);
            }
            foreach (var p in controlPolygonPoints)
            {
                result.Add(p);
            }
            foreach (var p in curvePoints)
            {
                result.Add(p);
            }
            return(result);
        }
Ejemplo n.º 2
0
        // 以p点为中心开始扩展,填充
        public override List <Point> Points()
        {
            List <Point> l   = new List <Point>();
            var          len = vertices.Count;

            for (var i = 0; i < len; i++)
            {
                var p = new BresenhamLine(vertices[i], vertices[(i + 1) % len], f);
                l.AddRange(p.Points());
            }
            return(l);
        }